On Thu, 10 Feb 2000, Tobias König wrote:
Kann mir jemand sagen, wie man unter C++, nach einem execvp()-Aufruf, den Fehlerausgabekanal auf ein ifstream bzw. ofstream umleitet???
gar nicht.
Errorchannel: filedescriptor=2=STDERR_FILENO, ofstream=cerr
zur Information: execvp ersetzt (wie alle execs) den laufenden Prozess durch ein anderes Programm. Nach einem exec kann man hoechstens noch Fehlerbehandlung machen (a'la: habe das Programm nicht gefunden). Im neu gestarteten Programm wird cerr automatisch auf Descriptor 2 initialisiert.
Stimmt, da musst Du entweder system() nehmen, der kommt zurueck, oder Du stellst dem execvp noch ein fork() voran, ein vfork() taete es hier auch.
Ansonsten kann man (soweit ich weiss) *fstreams auch mit Filedescriptoren initialisieren -> hier also die Konstante STDERR_FILENO.
Ich glaube auch, das geht ... im EXTREMFALL nimmst Du von Qt ein QFile, aus dem Du Dir dann ein QTextStream baust, der im Grunde genauso funzt wie iostream.
Was hattest Du eigentlich vor?
Ich vermute mal ... eine Fortschrittsanzeige aufgrund der Programmausgabe?
Konrad