Umleiten von stdout und stderr in die gleiche Datei und wiederherstellen

Bin ich umleiten der Ausgabe von stderr und stdout von meinem c-Programm um zwei Dateien, und dann die Wiederherstellung des ursprünglichen stdout und stderr:

int sout = dup(fileno(stdout));
freopen("test.txt","w",stdout);

int serr = dup(fileno(stderr));
freopen("test.txt","a",stderr);

//some output....

dup2(sout,fileno(stdout));
close(sout);

dup2(serr,fileno(stderr));
close(serr);

Dass der code axample. Dieser funktioniert.

Aber ich möchte umleiten von stdout und stderr in die gleiche Datei(und später wiederherstellen es wieder), so dass die Ausgabe sortiert wird in der Reihenfolge sortiert auf der Konsole ausgegeben, wenn nicht, umleiten von stderr und stdout. Wie kann ich das tun?

InformationsquelleAutor der Frage unlimited101 | 2013-03-01

Schreibe einen Kommentar