Standard-Datenströme: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 88: | Zeile 88: | ||
# https://de.wikipedia.org/wiki/Standard-Datenstr%C3%B6me | # https://de.wikipedia.org/wiki/Standard-Datenstr%C3%B6me | ||
[[Kategorie:Linux/Datei]] | |||
[[Kategorie: | |||
</noinclude> | </noinclude> |
Version vom 8. September 2025, 16:43 Uhr
Standard-Datenströme - Datenströme für die Ein- und Ausgabe im Betriebssystem Unix oder in verwandten Betriebssystemen
Beschreibung

Die Standard-Datenströme (englisch: standard streams) sind drei Datenströme für die Ein- und Ausgabe im Betriebssystem Unix oder in verwandten Betriebssystemen
- Sie werden auch von der C-Standard-Bibliothek unterstützt
- Viele Programme verwenden automatisch die Standardein- bzw. -ausgabe, wenn auf der Kommandozeile keine Dateien für die Ein- oder Ausgabe angegeben werden
Datenkanal | Nr | Name | Device |
---|---|---|---|
Standardeingabe | 0 | STDIN | Keyboard |
Standardausgabe | 1 | STDOUT | Display |
Standardfehlerausgabe | 2 | STDERR | Display |
Standardeingabe
- Standardeingabe (stdin)
Über die Standardeingabe können Daten in ein Programm eingelesen werden
- Normalerweise ist sie mit der Tastatur verbunden, d. h. Programme empfangen die Benutzereingaben über die Standardeingabe
- Unter Unix entspricht der Standardeingabe die Gerätedatei /dev/stdin, der Datei-Deskriptor hat die Nummer 0
- Beispiel
Hier wird die Standardeingabe für das Programm less aus der Datei eingaben.txt gelesen
$ less < eingaben.txt
Standardausgabe
- Standardausgabe (stdout)
Über die Standardausgabe kann ein Programm Daten ausgeben
- Normalerweise ist sie mit dem Monitor verbunden, d. h. Programme senden Ausgabetexte über die Standardausgabe an den Benutzer
- Unter Unix entspricht der Standardausgabe die Gerätedatei /dev/stdout, der Datei-Deskriptor hat die Nummer 1
Beispiel: Hier wird die Standardausgabe des Programms find in die Datei ausgaben.txt umgeleitet
$ find . -name '*.html' > ausgaben.txt
gleichbedeutend
$ find . -name '*.html' 1> ausgaben.txt
Standardfehlerausgabe
- Standardfehlerausgabe (stderr)
Die Standardfehlerausgabe ist ein zweiter Ausgabedatenstrom, der dazu gedacht ist, Fehler- und Statusmeldungen auszugeben
- Normalerweise ist er ebenfalls mit dem Monitor verbunden; allerdings kann er getrennt von der Standardausgabe umgeleitet werden, so dass Fehlermeldungen nicht mit den ausgegebenen Nutzdaten vermischt werden
- Unter Unix entspricht der Standardfehlerausgabe die Gerätedatei /dev/stderr, der Datei-Deskriptor hat die Nummer 2
Beispiel: Hier werden die Fehlermeldungen des Programms find in die Datei fehlermeldungen.txt umgeleitet, während die Standardausgabe über eine Pipe an das Programm less weitergeleitet wird
$ find . -name '*.html' 2> fehlermeldungen.txt | less
Ausgabeumleitung
- Umleiten der Fehlermeldungen in stdout
$ find . -name '*.html' 2>&1 | less
Hier ist dies so zu verstehen: „Leite stderr (ebenfalls) dorthin um, wo stdout jetzt gerade hinzeigt.“
- Beispiel
$ find . -name '*.html' 2>&1 1> gefundene.txt | less
stderr wird auf den Bildschirm/Scrn: umgeleitet, danach stdout in die Datei 'gefundene.txt'; stderr wird hierbei nicht mit in die Datei umgeleitet, da es ja nicht „in stdout“ geleitet wurde, sondern „dorthin, wo stdout hinzeigt(e)“
- Die Verkettung mit less bewirkt also das seitenweise Anzeigen der Fehlermeldungen
- Beispiel
$ find . -name '*.html' 1> gefundene.txt 2>&1 | less
stdout wird in die Datei gefundene.txt umgeleitet, dann stderr dorthin, wo stdout gerade zeigt (also ebenfalls in die Datei), für less bleibt nichts übrig!
Anhang
Siehe auch
Links
Weblinks