Warum wird STDERR zu STDOUT umgeleitet?

7

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?

    
user559208 31.12.2010, 11:10
quelle

3 Antworten

35

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:

%Vor%     
Frédéric Hamidi 31.12.2010 11:14
quelle
5

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.

    
Clifford 31.12.2010 13:42
quelle
0

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 .

    
Vijay Mathew 31.12.2010 11:16
quelle

Tags und Links