LPIC101/103.4 Ströme, Pipes und Umleitungen verwenden: Unterschied zwischen den Versionen
Ramez (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Ramez (Diskussion | Beiträge) |
||
Zeile 8: | Zeile 8: | ||
stdin, stdout und stderr | stdin, stdout und stderr | ||
Immer wenn unter Linux ein Programm | Immer wenn unter Linux ein Programm ausgeführt wird, erhält dieses Informationen über drei Dateideskriptoren. Diese werden als Standard-I/Os bezeichnet: | ||
<br> | |||
Standardeingabekanal(stdin) ist normalerweise die Tastatur. | Standardeingabekanal(stdin) ist normalerweise die Tastatur. | ||
erwarten ihre Eingaben von | Viele Programme erwarten ihre Eingaben von stdinEs gibt aber auch, wie Sie schon oft gesehen | ||
haben, Programme, die stattdessen Dateien als Argumente erwarten. Diese Programme verwenden stdin | haben, Programme, die stattdessen Dateien als Argumente erwarten. Diese Programme verwenden stdin nicht. | ||
stdin | stdin | ||
entspricht dem Dateideskriptor 0. | entspricht dem Dateideskriptor 0. | ||
# Nummerierter Listeneintrag | |||
Standardausgabekanal | Standardausgabekanal | ||
( | (stdout) ist normalerweise ein Terminal. Viele Programmemachen ihre Ausgaben direkt nach stdout. | ||
stdout | stdout entspricht dem Dateideskriptor 1. | ||
) ist normalerweise ein Terminal. Viele | |||
stdout | |||
. | |||
stdout | |||
Standardfehlerkanal | Standardfehlerkanal | ||
( | (stderr) ähnelt vom Verhalten her stdout, enthält aber nur die Fehlermeldungen eines Programms. | ||
stderr | Die Ausgabe des Fehlerkanals erfolgt norma-lerweise auch auf dem Terminal. | ||
) ä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 | stderr | ||
entspricht dem Dateideskriptor 2. | entspricht dem Dateideskriptor 2. | ||
Dadurch, dass der Standardau | Dadurch, dass der Standardau | ||
sgabekanal und der Standardfehlerkanal getrennt ver- | sgabekanal und der Standardfehlerkanal getrennt ver-waltet werden, ist es möglich, Fehlermeldungen von den normalen Ausgaben eines | ||
waltet werden, ist es möglich, | |||
Programms zu trennen. Deshalb können Sie | Programms zu trennen. Deshalb können Sie | ||
den Fehlerkanal z. B. in eine Fehlerpro- | den Fehlerkanal z. B. in eine Fehlerpro-tokolldatei umlenken | ||
tokolldatei umlenken |
Version vom 31. Oktober 2019, 14:11 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 stdinEs 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.
- Nummerierter Listeneintrag
Standardausgabekanal
(stdout) ist normalerweise ein Terminal. Viele Programmemachen 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, Fehlermeldungen von den normalen Ausgaben eines Programms zu trennen. Deshalb können Sie den Fehlerkanal z. B. in eine Fehlerpro-tokolldatei umlenken