Standard-Datenströme: Unterschied zwischen den Versionen
Leere Seite erstellt |
|||
(30 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''Standard-Datenströme''' - [[Datenstrom|Datenströme]] für die [[Eingabe und Ausgabe|Ein- und Ausgabe]] im Betriebssystem [[Unix]] oder in verwandten [[Betriebssystem]]en | |||
== Beschreibung == | |||
[[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 | |||
* 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" | |||
! Datenkanal !! Name!! file handle !!Device | |||
|- | |||
| [[#Standardeingabe|Standardeingabe]] || STDIN || 0 ||Keyboard | |||
|- | |||
| [[#Standardausgabe|Standardausgabe]] || STDOUT || 1 ||Display | |||
|- | |||
| [[#Standardfehlerausgabe|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 (Informatik)|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! | |||
<noinclude> | |||
== Anhang == | |||
=== Siehe auch === | |||
<div style="column-count:2"> | |||
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree> | |||
</div> | |||
---- | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}/}} | |||
---- | |||
* [[Pipe]] | |||
=== Links === | |||
==== Weblinks ==== | |||
# https://de.wikipedia.org/wiki/Standard-Datenstr%C3%B6me | |||
[[Kategorie:Linux/Datei]] | |||
</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