Establecer tamaño de búfer de tubería
Tengo una aplicación multiproceso C ++ que utiliza tuberías posix para realizar comunicaciones entre subprocesos de manera eficiente (por lo que no tengo que volverme loco con los puntos muertos).
He configurado la operación de escritura sin bloqueo, por lo que el escritor recibirá un error si no hay suficiente espacio en el búfer para escribir.
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);
Ahora quisiera establecer el tamaño del búfer de tubería en un valor personalizado (una palabra en el caso específico).
Lo busqué en Google pero no pude encontrar nada útil. ¿Hay alguna manera (posiblemente compatible con posix) de hacerlo?
Gracia
Lorenzo
PS: estoy bajo Linux (si puede ser útil)