Standard-Datenströme

Standard-Datenströme
Die Standard-Datenströme für Eingabe, Ausgabe, und Fehler

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 Standard C Library unterstützt. Viele Programme verwenden automatisch die Standardein- bzw. Standardausgabe, wenn auf der Kommandozeile keine Dateien für die Ein- oder Ausgabe angegeben werden.

Inhaltsverzeichnis

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 (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 (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 1: 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

Beispiel 2: 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 3:

$ 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 4:

$ 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!

Programmiersprache C

In der Programmiersprache C und C++ werden in der Header-Datei stdio.h drei Dateizeiger vom Typ FILE * mit den Namen stdin, stdout und stderr definiert. Diese virtuellen Dateien sind automatisch ab Programmstart geöffnet und können mit den meisten Befehlen, welche auf Dateien zugreifen, verwendet werden.

Da dieses Verhalten von C standardisiert ist, finden sich diese Standard-Datenströme auch in nicht-Unix-Betriebssystemen bzw. werden entsprechend simuliert.

Programmiersprache Java

In der Programmiersprache Java werden in der Klasse java.lang.System drei Streams erzeugt. System.in als InputStream, System.out als PrintStream und System.err ebenfalls als PrintStream. Diese Streams sind automatisch ab Programmstart geöffnet und können genutzt werden, um auf die Standard-Datenströme zuzugreifen.

Da dieses Verhalten von Java standardisiert ist, finden sich diese Standard-Datenströme auch in nicht-Unix-Betriebssystemen bzw. werden entsprechend simuliert.

Programmiersprache Python

Auch unter Python kann auf die Standard-Datenströme zugegriffen werden, und zwar über die im Modul sys bereitgestellten Dateiobjekte stdin, stdout und stderr.

Siehe auch


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Standard-Port — Ein Port ist ein Teil einer Adresse, der Datensegmente einem Netzwerkprotokoll zuordnet. Dieses Konzept ist beispielsweise in TCP, UDP und SCTP vorgesehen, um Protokolle auf den höheren Schichten des OSI Modells zu adressieren. In diesen drei… …   Deutsch Wikipedia

  • STDERR — 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 Standard C Library unterstützt. Viele Programme verwenden… …   Deutsch Wikipedia

  • STDIN — 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 Standard C Library unterstützt. Viele Programme verwenden… …   Deutsch Wikipedia

  • STDOUT — 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 Standard C Library unterstützt. Viele Programme verwenden… …   Deutsch Wikipedia

  • Standardausgabe — 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 Standard C Library unterstützt. Viele Programme verwenden… …   Deutsch Wikipedia

  • Standardeingabe — 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 Standard C Library unterstützt. Viele Programme verwenden… …   Deutsch Wikipedia

  • Standardfehlerausgabe — 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 Standard C Library unterstützt. Viele Programme verwenden… …   Deutsch Wikipedia

  • Stderr — 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 Standard C Library unterstützt. Viele Programme verwenden… …   Deutsch Wikipedia

  • Stdin — 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 Standard C Library unterstützt. Viele Programme verwenden… …   Deutsch Wikipedia

  • Stdout — 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 Standard C Library unterstützt. Viele Programme verwenden… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”