J'ai créé un tube et j'ai utilisé dup2() pour remplacer les flux 1 & 2 (stdout & stderr) dans ces tubes.Comment utiliser fprintf et écrire sur un tube?
Maintenant, je souhaite utiliser fprintf pour écrire dans le flux 1 ou 2, mais mon programme ne semble pas recevoir quoi que ce soit de l'autre côté du canal. J'ai essayé d'utiliser printf(), mais je ne suis pas sûr si cela écrit sur stdout ou stream 1 par défaut. S'il écrit dans le flux 1, je suppose que c'est un problème quelque part plus profond dans mon code.
Essentiellement, je demande, étant donné un int représentant le flux, comment puis-je obtenir un FICHIER * approprié pour une utilisation dans fprintf()?
Fermez-vous le descripteur, le pointeur FILE, ou les deux? – Bernard
Le descripteur de fichier reste ouvert jusqu'à ce que vous sépariez le flux, à quel point il fermera le descripteur de fichier en fonction de la page de manuel. –