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