Установить размер буфера канала

У меня есть многопоточное приложение на C ++, которое использует каналы posix для эффективного взаимодействия между потоками (так что мне не нужно сходить с ума по тупикам).

I ' Мы установили неблокирующую операцию записи, поэтому писатель получит сообщение об ошибке, если в буфере недостаточно места для записи.

if((pipe(pipe_des)) == -1)
    throw PipeException();

int flags = fcntl(pipe_des[1], F_GETFL, 0); // set write operation non-blocking
assert(flags != -1);
fcntl(pipe_des[1], F_SETFL, flags | O_NONBLOCK);

Теперь я бы хотел установить размер буфера канала на пользовательское значение (одно слово в конкретный случай).

Я искал это в гугле, но не смог найти ничего полезного. Есть ли способ (возможно, совместимый с posix) сделать это?

Спасибо

Лоренцо

PS: Я использую linux (если это может быть полезно)

14
задан Zeruel 7 March 2011 в 10:50
поделиться