Frage

habe ich ein Rohr und I verwendet dup2 (Strom) zu überschreiben 1 & 2 (stdout & Stderr) in diese Rohre.

Nun wünsche ich fprintf verwenden, schreiben 1 oder 2 zu streamen, aber mein Programm scheint nicht, etwas auf der anderen Seite des Rohres zu empfangen. Ich habe versucht, printf () verwenden, aber ich bin nicht sicher, ob dies auf der Standardausgabe oder Strom 1 durch Standard schreibt. Wenn es schreibt 1 zu streamen, ich denke, es ist ein Problem irgendwo tiefer in meinem Code.

Im Grunde frage ich ein int, die den Strom gegeben, wie kann ich eine Datei * geeignet für den Einsatz in fprintf get ()?

War es hilfreich?

Lösung

Wenn Sie einen Dateideskriptor haben und wollen eine FILE*, können Sie fdopen verwenden

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

fdopen ist eine Posix-Funktion und in man fdopen dokumentiert. Um zu tun das Gegenteil Sie fileno

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top