Pregunta

Creé una tubería y usé dup2 () para sobrescribir las secuencias 1 & amp; 2 (stdout & amp; stderr) en esas tuberías.

Ahora deseo usar fprintf para escribir en la secuencia 1 o 2, pero mi programa no parece estar recibiendo nada al otro lado de la tubería. Intenté usar printf (), pero no estoy seguro de si esto escribe en stdout o stream 1 por defecto. Si escribe en la secuencia 1, supongo que es un problema en algún lugar más profundo de mi código.

Básicamente, estoy preguntando, dado un int que representa la secuencia, ¿cómo puedo obtener un ARCHIVO * adecuado para usar en fprintf ()?

¿Fue útil?

Solución

Si tiene un descriptor de archivo y quiere un FILE * , puede usar fdopen

FILE *fdopen(int fd, const char *mode);

fdopen es una función Posix y documentado en man fdopen . Para hacer lo contrario, puede usar fileno

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top