У меня есть многопоточное приложение на С++, которое использует 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 (если это может быть полезно)