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)

Respuestas a la pregunta(3)

Su respuesta a la pregunta