Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ pipe(2) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sh(1)

fcntl(2)

getmsg(2)

poll(2)

putmsg(2)

read(2)

write(2)

unistd(4)

streamio(7)

pipe(2)                                                             pipe(2)

NAME
     pipe - Interprozeß-Kommunikationskanal einrichten

SYNTAX
     #include <unistd.h>

     int pipe(int dk[2]);

BESCHREIBUNG
     pipe() dient zum Einrichten eines als Pipe bezeichneten E/A-Mechanis-
     mus und gibt zwei Dateideskriptoren zurück, dk[0] und dk[1]. Die mit
     dk[0] und dk[1] verbundenen Dateien sind Streams und werden beide zum
     Lesen und Schreiben geöffnet. Die Schalter ONDELAY und ONONBLOCK
     werden gelöscht.

     Das Einlesen von dk[0] greift auf die Daten zu, die gemäß dem FIFO-
     Prinzip an dk[1] geschrieben wurden, während das Einlesen von dk[1]
     auf jene Daten zugreift, die ebenfalls gemäß dem FIFO-Prinzip an dk[0]
     geschrieben wurden. Es ist nicht definiert, ob fildes[0] auch zum
     Schreiben und fildes[1] auch zum Lesen geöffnet wird.

     Der Schalter FDCLOEXEC wird auf beiden Dateideskriptoren gelöscht.

     Nach erfolgreicher Ausführung markiert pipe() die Felder statime,
     stctime und stmtime auf der Pipe zur Aktualisierung.

FEHLER
     Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
     Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
     errno(5).

     pipe() schlägt bei folgenden Bedingungen fehl:

     EMFILE    OPENMAX-1 oder mehr Dateideskriptoren sind zum gegebenen
               Zeitpunkt für diesen Prozeß geöffnet.

     ENFILE    Der Dateitabelleneintrag konnte nicht zugewiesen werden.

ERGEBNIS
     Nach erfolgreicher Beendigung wird 0 zurückgegeben. Andernfalls wird
     -1 zurückgegeben, und errno wird zur Anzeige des Fehlers gesetzt.

HINWEISE
     Da eine Pipe bidirektional ist, gibt es zwei verschiedene Datenflüsse.
     Deshalb ist die Größe (stsize), die durch einen Aufruf an fstat(2)
     mit dem Argument dk[0] oder dk[1] beantwortet wurde, die Anzahl der
     Bytes, die zum Lesen von dk[0] oder dk[1] zur Verfügung standen. Frü-
     her war die Größe (stsize), die durch einen Aufruf an fstat() mit dem
     Argument dk[1] (dem Schreibende) beantwortet wurde, die Anzahl der
     Bytes, die zum Lesen von dk[0] (dem Leseende) zur Verfügung standen.





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

pipe(2)                                                             pipe(2)

SIEHE AUCH
     sh(1), fcntl(2), getmsg(2), poll(2), putmsg(2), read(2), write(2),
     unistd(4), streamio(7).



















































Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026