LPIC101/103.4 Ströme, Pipes und Umleitungen verwenden: Unterschied zwischen den Versionen
Ramez (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Ramez (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 6: | Zeile 6: | ||
In einem anderen Fall erzeugt ein Programm vielleicht eine Ausgabe auf dem Bild-schirm, die Sie abspeichern wollen. In diesem Fall benötigen Sie eine Umleitung der Standardausgabe (Redirect). | In einem anderen Fall erzeugt ein Programm vielleicht eine Ausgabe auf dem Bild-schirm, die Sie abspeichern wollen. In diesem Fall benötigen Sie eine Umleitung der Standardausgabe (Redirect). | ||
Wenn ein Programm ausschließlich von der Standardeingabe (normalerweise dieTastatur) liest und Sie mit diesem Programm eine Datei einlesen müssen, benötigen Sie ebenfalls eine Umleitung. Diesmal mussallerdings die Standardeingabe umgeleitet (Redirect) werden | Wenn ein Programm ausschließlich von der Standardeingabe (normalerweise dieTastatur) liest und Sie mit diesem Programm eine Datei einlesen müssen, benötigen Sie ebenfalls eine Umleitung. Diesmal mussallerdings die Standardeingabe umgeleitet (Redirect) werden | ||
stdin, stdout und stderr | |||
Immer wenn unter Linux ein Programm ausgef | |||
ührt wird, erhält dieses Informationen über drei Dateideskriptoren. Diese werden als Standard-I/Os bezeichnet: | |||
Standardeingabekanal(stdin) ist normalerweise die Tastatur. Viele Programme | |||
erwarten ihre Eingaben von stdin. Es gibt aber auch, wie Sie schon oft gesehen | |||
haben, Programme, die stattdessen Dateien als Argumente erwarten. Diese Programme verwenden stdin | |||
nicht. | |||
stdin | |||
entspricht dem Dateideskriptor 0. | |||
� | |||
Standardausgabekanal | |||
( | |||
stdout | |||
) ist normalerweise ein Terminal. Viele Programme | |||
machen ihre Ausgaben direkt nach | |||
stdout | |||
. | |||
stdout | |||
entspricht dem Dateideskriptor 1. | |||
Standardfehlerkanal | |||
( | |||
stderr | |||
) ähnelt vom Verhalten her | |||
stdout | |||
, enthält aber nur die | |||
Fehlermeldungen eines Programms. Die Ausgabe des Fehlerkanals erfolgt norma- | |||
lerweise auch auf dem Terminal. | |||
stderr | |||
entspricht dem Dateideskriptor 2. | |||
Dadurch, dass der Standardau | |||
sgabekanal und der Standardfehlerkanal getrennt ver- | |||
waltet werden, ist es möglich, Fehlerme | |||
ldungen von den normalen Ausgaben eines | |||
Programms zu trennen. Deshalb können Sie | |||
den Fehlerkanal z. B. in eine Fehlerpro- | |||
tokolldatei umlenken |
Version vom 31. Oktober 2019, 13:58 Uhr
Allgemeines
Manchmal kann es vorkommen, dass Sie die Ausgabe eines Programms direkt mit einem anderen Programm weiterverarbeiten müssen. In diesem Fall können Sie eine sogenannte Pipe(senkrechter Strich) verwenden. Mit ihrer Hilfe ist das Zwischen-speichern der Ausgabe des ersten Programms in einer Datei zum Zweck, diese Dateidann mit dem zweiten Programmwieder einzulesen, unnötig. In einem anderen Fall erzeugt ein Programm vielleicht eine Ausgabe auf dem Bild-schirm, die Sie abspeichern wollen. In diesem Fall benötigen Sie eine Umleitung der Standardausgabe (Redirect). Wenn ein Programm ausschließlich von der Standardeingabe (normalerweise dieTastatur) liest und Sie mit diesem Programm eine Datei einlesen müssen, benötigen Sie ebenfalls eine Umleitung. Diesmal mussallerdings die Standardeingabe umgeleitet (Redirect) werden
stdin, stdout und stderr Immer wenn unter Linux ein Programm ausgef ührt wird, erhält dieses Informationen über drei Dateideskriptoren. Diese werden als Standard-I/Os bezeichnet: Standardeingabekanal(stdin) ist normalerweise die Tastatur. Viele Programme erwarten ihre Eingaben von stdin. Es gibt aber auch, wie Sie schon oft gesehen haben, Programme, die stattdessen Dateien als Argumente erwarten. Diese Programme verwenden stdin
nicht.
stdin
entspricht dem Dateideskriptor 0.
� Standardausgabekanal
(
stdout ) ist normalerweise ein Terminal. Viele Programme machen ihre Ausgaben direkt nach stdout . stdout
entspricht dem Dateideskriptor 1.
Standardfehlerkanal
(
stderr ) ähnelt vom Verhalten her stdout , enthält aber nur die Fehlermeldungen eines Programms. Die Ausgabe des Fehlerkanals erfolgt norma- lerweise auch auf dem Terminal. stderr
entspricht dem Dateideskriptor 2.
Dadurch, dass der Standardau sgabekanal und der Standardfehlerkanal getrennt ver- waltet werden, ist es möglich, Fehlerme ldungen von den normalen Ausgaben eines Programms zu trennen. Deshalb können Sie den Fehlerkanal z. B. in eine Fehlerpro- tokolldatei umlenken