fattach(3C) fattach(3C)
NAME
fattach - Einem Objekt im Namensraum des Dateisystems eine Dateikenn-
zahl unter STREAMS zuordnen
SYNTAX
#include <stropts.h>
int fattach(int fildes, const char *path);
BESCHREIBUNG
Die Funktion fattach ordnet einem Objekt im Namensraum des Dateisy-
stems eine Dateikennzahl unter STREAMS zu, wobei fildes ein Name
zugeordnet wird. fildes muß eine gültige, offene Dateikennzahl sein,
die für eine STREAMS-Datei steht. path ist ein Pfadname eines existie-
renden Objekts, dessen Eigentümer mit Schreibberechtigung der Benutzer
sein muß. Alternativ dazu kann der Benutzer auch besondere Rechte
besitzen. Alle nachfolgenden Operationen auf path arbeiten mit der
STREAMS-Datei, solange, bis die Zuordnung der STREAMS-Datei zum Knoten
aufgehoben wird. fildes kann mehr als einem Pfad zugeordnet sein,
d. h. der Dateikennzahl können mehrere Namen zugeordnet sein.
Die Attribute des benannten Streams werden folgendermaßen initiali-
siert [siehe auch stat(2)]: Zugriffsrechte, Benutzer- und Gruppen-ID
sowie die Dateizeiten werden gleich denen von path, die Anzahl der
Verweise wird gleich 1 und Größe und Geräte-Identifikation werden
gleich den Werten gesetzt, die das STREAMS-Gerät zu fildes besitzt.
Werden irgendwelche Attribute des benannten Streams anschließend geän-
dert [z. B. mit chmod(2)], dann werden die Attribute des zugrundelie-
genden Objekts davon nicht beeinflußt.
ERGEBNIS
Ist die Funktion fattach() erfolgreich, liefert sie den Wert 0 als
Ergebnis zurück; andernfalls liefert sie -1 zurück und setzt errno, um
den Fehler anzuzeigen.
FEHLER
Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
errno(5).
Unter den folgenden Bedingungen schlägt die Funktion fattach() fehl
und setzt errno auf den entsprechenden Wert:
EACCES Für eine Komponente der Pfadangabe wurde keine Suchbe-
rechtigung erteilt, oder der Prozeß ist zwar der Eigen-
tümer von path, verfügt jedoch nicht über die Schreibbe-
rechtigung für die durch path angegebene Datei.
EBADF fildes ist keine gültige, offene Dateikennzahl.
ENOENT Eine Komponente von path gibt eine nicht vorhandene
Datei an, oder path ist eine leere Zeichenkette.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
fattach(3C) fattach(3C)
ENOTDIR Eine Komponente der Pfadnamenangabe ist kein Verzeich-
nis.
EINVAL fildes stellt keine STREAMS-Datei dar.
EPERM Die effektive Benutzer-ID ist nicht die des Eigentümers
von path oder eines Benutzers mit besonderen Rechten.
EBUSY path ist derzeit ein Einhängepunkt oder diesem Pfad ist
eine STREAMS-Datei zugeordnet.
ENAMETOOLONG Die Länge von path überschreitet PATHMAX, oder die Kom-
ponente eines Pfadnamens ist länger als NAMEMAX, wäh-
rend POSIXNOTRUNC aktiv ist.
ELOOP Bei der Auflösung von path wurden zuviele symbolische
Links gefunden.
EREMOTE path ist eine Datei in einem von fern eingehängten Ver-
zeichnis.
Die Funktion fattach() kann bei folgenden Bedingungen fehlschlagen:
EINVAL Das Argument fildes verweist nicht auf eine STREAMS-
Datei.
ENAMETOOLONG Die Auflösung des Pfadnamens eines symbolischen Links
hat ein Zwischenergebnis erzeugt, dessen Länge PATHMAX
überschreitet.
ANWENDUNGSZWECK
Die Funktion fattach() verhält sich ähnlich wie die herkömmliche Funk-
tion mount(2), da auch hier eine Datei vorübergehend durch das Root-
Verzeichnis des eingehängten Dateisystems ersetzt wird. Bei fattach()
muß die ersetzte Datei kein Verzeichnis sein und die diese Datei
ersetzende Datei ist eine STREAMS-Datei.
SIEHE AUCH
fdetach(1M), fdetach(3C), isastream(3C), stropts(5), streamio(7).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98