Pipe |
Unter UNIX ist die Pipe (engl. Röhre) ein Standardmittel zur Verknüpfung zweier Prozesse. Dabei führt der eine Prozess seine Standardausgabe dem Nachfolger als Standardeingabe zu.
#include <unistd.h> int pipe(int zipfel[2]); |
Es werden zwei Dateihandles erzeugt, die man nach dem Aufruf in dem Parameter zipfel findet. zipfel[0] enthält das Ende zum Lesen und zipfel[1] enthält das Ende zum Schreiben in die Pipe. Als nächstes erfolgt typischerweise ein Aufruf von fork(). Dann übernimmt der Vater das eine und das Kind das andere Ende der Pipe und schließt das jeweils andere, je nach dem, wer von beiden Datenproduzent und wer Datenkonsument ist. Der Produzent benutzt den normalen write() und der Konsument den normalen read(). Beide Enden der Pipe müssen separat per close() geschlossen werden.
#include <sys/types.h> #include <sys/stat.h> int mkfifo ( const char *Name, mode_t modus ); |
print(char *Inhalt) { FILE *PipeID; PipeID = popen("lpr", "w"); fwrite(Inhalt, strlen(Inhalt), 1, PipeID); pclose(PipeID); } |
Diese Seite basiert auf Inhalten aus dem Buch
Arnold Willemer: Wie werde ich UNIX-Guru Verlagsrechte bei galileo computing |
Homepage |
(C) Copyright 2002 Arnold Willemer
|