¿Cómo se puede networkingireccionar el stdout del progtwig ejecutado a FCGI_stdout?

Estoy construyendo una aplicación fastcgi basada en libfcgi para proporcionar transferencias de "HTTP inteligentes" en git. Para hacerlo, actualmente necesito bifurcar y ejecutar el progtwig git-upload-pack. El único problema es que libfcgi reemplaza STDOUT y STDERR con descriptores de file FCGI especiales y git no los conoce. Quiero ser capaz de capturar la salida del progtwig git (stdout & stderr) en el process principal para poder enviarlo al server.

Después de llamar a fork () y antes de llamar a exec () haga lo siguiente: call close () en fds 1 y 2 (que es stdout y stderr) y luego llame a dup2 () para asignar fds de STDOUT y STDERR de libfcgi new fds : 1 y 2. Luego puede cerrar los fds originales de STDOUT y STDERR (se cerrarán solo para el progtwig git ejecutado, pero seguirán abiertos en su carpeta principal).

Esto debería reasignar la salida de git a las secuencias libfcgi. Si desea leer flujos de forma manual y enviar datos usted mismo, puede usar la llamada a pipe () para crear un par de fds, de modo que git puede escribir en uno y leer desde otro. O simplemente use popen () que puede hacer esto por usted (pero no le permitirá trabajar con stderr)