Как выполнить неблокирующую запись на устройство? - PullRequest
3 голосов
/ 23 декабря 2010

можно ли сделать write (); функция неблокирования без использования потоков?

short buffer[BUFFER_LEN];
int readcount;

while ((readcount = sounds[index].read(buffer, BUFFER_LEN)))
    write(audio_device, buffer, readcount * sizeof(short));

Звук воспроизводится, но блокирует программу до тех пор, пока не закончится воспроизведение.

1 Ответ

3 голосов
/ 23 декабря 2010

Использование fcntl для установки флага O_NONBLOCK для файла, вероятно, будет работать, но вы должны быть готовы к частичной записи и EWOULDBLOCK ошибкам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...