У меня есть многопоточное приложение C ++, которое использует конвейеры posix для эффективного выполнения межпотокового взаимодействия (поэтому мне не нужно сходить с ума из-за тупиков).
Я установил операцию записи безблокировка, поэтому писатель получит сообщение об ошибке, если в буфере недостаточно места для записи.
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 (если это может быть полезно)