Ich habe festgestellt, dass wir hauptsächlich drei Dateiströme haben. Sie sind STDIN, STDOUT und STDERR .. Meine Frage ist warum wird STDERR zu STDOUT umgeleitet?
stderr
wird nicht zu stdout
umgeleitet. Beide Streams sind standardmäßig nur mit demselben Gerät (dem aktuellen Bildschirm oder Terminal) verbunden.
Sie können sie in verschiedene Dateien umleiten:
%Vor% Um stderr
tatsächlich auf stdout
umzuleiten, müssen Sie Folgendes eingeben:
Es ist nicht; Es passiert einfach, dass sowohl stdout als auch stderr normalerweise auf den gleichen Ausgabestrom (normalerweise die Konsole) abgebildet werden. Wenn Sie beispielsweise stdout an eine Datei umleiten, werden Sie feststellen, dass stderr weiterhin auf die Konsole gerichtet ist.
Der wichtige Punkt ist, dass sie unabhängig umleitbar sind.
Wie stdout
, stderr
wird normalerweise zum Ausgabegerät der Standardkonsole (im Allgemeinen der Bildschirm) geleitet. Das heißt, stderr
wird nicht zu stdout
umgeleitet, aber sie teilen sich einen gemeinsamen Dateideskriptor. Es ist möglich, stderr
mit Hilfe der Funktion freopen von einem Programm aus innerhalb eines Programms umzuleiten .