stderr und fprintf

Gast #5119712
Lesenswert?

eagle user schrieb:
> das müsste sich mit dup()/dup2() austrixen lassen...

dup ist eine POSIX-Funktion (gibts zB nicht unter Windows). (f)printf 
sind Standard-C(++)-Funktionen, die gibts auf allen Plattformen die 
C(++) korrekt unterstützen (auch Windows). Sollte man daher nicht 
durcheinander werfen; dass das so geht ist von C nicht vorgesehen.
#5119774
Lesenswert?

Fragender schrieb:
> Warum wird stderr eigentlich immer mit fprintf verwendet und nicht mit
> printf?

Weil man bei printf gar nicht wählen kann, wohin die Ausgabe gehen soll. 
Es geht grundsätzlich immer nach stdout. Du könntest aber umgekehrt 
fprintf auch mit stdout benutzen, wenn du das unbedingt alles mit der 
selben Funktion machen willst.

Dr. Sommer schrieb:
> eagle user schrieb:
>> das müsste sich mit dup()/dup2() austrixen lassen...
>
> dup ist eine POSIX-Funktion (gibts zB nicht unter Windows).

Abgesehen davon geht die Ausgabe immer noch nach stdout. Das ist jetzt 
nur auf Systemebene mit einem anderen Stream verbunden. Auf der C-Seite 
bleibt ein printf(...) aber äquivalent zu einem fprintf(stdout, ...).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren