Zum Inhalt springen

Standard-Datenströme: Unterschied zwischen den Versionen

Aus Foxwiki
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.&nbsp;h.&nbsp;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 für Eingabe, Ausgabe, und Fehler

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

  1. https://de.wikipedia.org/wiki/Standard-Datenstr%C3%B6me