Standard-Datenströme: Unterschied zwischen den Versionen
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 3: | Zeile 3: | ||
== Beschreibung == | == Beschreibung == | ||
[[Datei:Stdstreams-notitle.svg|mini| | [[Datei:Stdstreams-notitle.svg|mini|Standard-Datenströme für Eingabe, Ausgabe, und Fehler]] | ||
[[Standard-Datenströme]] (standard streams) sind drei [[Datenstrom|Datenströme]] für die [[Eingabe und Ausgabe|Ein- und Ausgabe]] im Betriebssystem [[Unix]] und in verwandten [[Betriebssystem]]en | |||
* Sie werden auch von der [[C-Standard-Bibliothek]] unterstützt | * Sie werden auch von der [[C-Standard-Bibliothek]] unterstützt | ||
* Viele Programme verwenden automatisch die Standardein- bzw. -ausgabe | * Viele Programme verwenden automatisch die Standardein- bzw. -ausgabe | ||
* wenn auf der [[Kommandozeile]] keine [[Datei]]en für die Ein- oder Ausgabe angegeben werden | |||
{| class="wikitable options big" | {| class="wikitable options big" | ||
! Datenkanal !! | ! Datenkanal !! Name!! file handle !!Device | ||
! | |||
!Device | |||
|- | |- | ||
| [[#Standardeingabe|Standardeingabe]] ||0 | | [[#Standardeingabe|Standardeingabe]] || STDIN || 0 ||Keyboard | ||
| | |||
|Keyboard | |||
|- | |- | ||
| [[#Standardausgabe|Standardausgabe]] ||1 | | [[#Standardausgabe|Standardausgabe]] || STDOUT || 1 ||Display | ||
| | |||
|Display | |||
|- | |- | ||
| [[#Standardfehlerausgabe|Standardfehlerausgabe]] ||2 | | [[#Standardfehlerausgabe|Standardfehlerausgabe]] || STDERR || 2 || Display | ||
| | |||
|Display | |||
|} | |} | ||
Zeile 88: | Zeile 81: | ||
# https://de.wikipedia.org/wiki/Standard-Datenstr%C3%B6me | # https://de.wikipedia.org/wiki/Standard-Datenstr%C3%B6me | ||
[[Kategorie:Linux/Datei]] | |||
[[Kategorie: | |||
</noinclude> | </noinclude> |
Aktuelle Version vom 9. September 2025, 17:30 Uhr
Standard-Datenströme - Datenströme für die Ein- und Ausgabe im Betriebssystem Unix oder in verwandten Betriebssystemen
Beschreibung

Standard-Datenströme (standard streams) sind drei Datenströme für die Ein- und Ausgabe im Betriebssystem Unix und 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 | Name | file handle | Device |
---|---|---|---|
Standardeingabe | STDIN | 0 | Keyboard |
Standardausgabe | STDOUT | 1 | Display |
Standardfehlerausgabe | STDERR | 2 | 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