mkfifo(3C) mkfifo(3C)
NAME
mkfifo - Neue FIFO-Gerätedatei erzeugen
SYNTAX
#include <sys/types.h>
#include <sys/stat.h>
int mkfifo(const char *path, modet mode);
BESCHREIBUNG
Die Routine mkfifo() erzeugt eine neue FIFO-Gerätedatei unter dem
Pfadnamen path. Der Modus der neuen FIFO-Gerätedatei wird aus mode
übernommen. Die Zugriffsrechte aus dem Argument mode werden von der
Dateierzeugungsmaske des Prozesses modifiziert [siehe umask(2)].
Werden in mode andere Bits als die für die Dateizugriffsrechte
gesetzt, sind die Auswirkungen von der jeweiligen Implementierung
abhängig.
Die Eigentümer-ID der FIFO-Gerätedatei wird auf die effektive
Benutzer-ID des Prozesses gesetzt. Die Gruppen-ID der FIFO-Gerätedatei
wird auf die effektive Gruppen-ID des Prozesses gesetzt; ist das
SISGID-Bit im übergeordneten Verzeichnis gesetzt, dann wird die
Gruppen-ID des FIFOs vom übergeordneten Verzeichnis übernommen.
Nach erfolgreicher Ausführung kennzeichnet mkfifo() die Felder
statime, stctime und stmtime der Datei zur Aktualisierung. Auch die
Felder stctime und stmtime des Verzeichnisses, das den neuen Eintrag
enthält, werden zur Aktualisierung gekennzeichnet.
mkfifo() ruft den Systemaufruf mknod() auf, um die Datei zu erzeugen.
FEHLER
Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
errno(5).
mkfifo() [bzw. mknod()] schlägt fehl und erstellt keine neue Datei,
wenn einer der folgenden Punkte wahr ist:
EACCES Entweder darf eine Komponente des Pfads nicht durchsucht
werden, oder die Schreibberechtigung für das übergeord-
nete Verzeichnis der neu zu erstellenden FIFO-Geräteda-
tei wird verweigert.
EEXIST Die angegebene Datei ist bereits vorhanden.
ELOOP Bei der Auflösung von path wurden zuviele symbolische
Links angetroffen.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
mkfifo(3C) mkfifo(3C)
ENAMETOOLONG Die Länge des Arguments path überschreitet PATHMAX,
oder die Länge einer Komponente von path überschreitet
NAMEMAX.
ENOSPC Das Verzeichnis, das die neue Datei enthalten soll, kann
nicht erweitert werden, oder das Dateisystem verfügt
nicht mehr über genügend Ressourcen für die Dateizuord-
nung.
ENOTDIR Eine Komponente des Pfadpräfixes ist kein Verzeichnis.
ENOENT Eine Komponente des Pfadpräfixes existiert nicht oder
ist ein leerer Pfadname.
EROFS Das Verzeichnis, in dem die Datei erstellt werden soll,
befindet sich in einem Dateisystem, das nur gelesen wer-
den kann.
Die Funktion mkfifo() kann bei folgender Bedingung fehlschlagen:
ENAMETOOLONG Die Auflösung des Pfadnamens eines symbolischen Links
hat ein Zwischenergebnis erzeugt, dessen Länge PATHMAX
überschreitet.
ERGEBNIS
Nach erfolgreicher Ausführung wird der Wert 0 zurückgeliefert. Anson-
sten wird -1 zurückgeliefert und errno gesetzt, um den Fehler anzuzei-
gen.
HINWEISE
Enthält mode andere gesetzte Bits, welche nicht die Dateizugriffs-
rechte regeln, so werden diese ignoriert.
SIEHE AUCH
mkdir(1), chmod(2), exec(2), mknod(2), umask(2), fs(4), stat(5),
types(5).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98