002
02.10.2007, 22:06 Uhr
cfx
|
Meines Wissens liefert fdopen () doch aber nur den Stream zu einem Dateideskriptor, so wie fileno () den Deskriptor zum Stream liefert.
Nebenbei, freopen ("/dev/tty", "w", stdout) scheint unter Linux zu funktionieren. Ich habe auch etwas mit dup () und dup2 () herumexperimentiert, bloß sind diese beiden Funktionen doch auch nicht portabel, oder ?
Nun ja, es geht zumindest beides.
[EDIT] Vielleicht macht sich ein Code-Beispiel manchmal doch nicht so schlecht...
C++: |
#include <stdio.h> #include <unistd.h>
int main () { int fd; fpos_t pos;
puts ("Es wird Text in die ...");
fflush (stdout); fgetpos (stdout, &pos); fd = dup (fileno (stdout)); freopen ("log.txt", "w", stdout);
printf ("Log: Das ist ein Test\n");
fflush (stdout); dup2 (fd, fileno (stdout)); close (fd); clearerr (stdout); fsetpos (stdout, &pos);
puts ("... Logdatei geschrieben.");
return 0; }
|
Dieser Post wurde am 02.10.2007 um 22:14 Uhr von cfx editiert. |