Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

fdetach - Zuordnung zu einer STREAMS-Datei aufheben

&pagelevel(4)&pagelevel

Definition

#include <stropts.h>

int fdetach(const char *path);

Beschreibung

Die Funktion fdetach() hebt die Zuordnung eines Dateideskriptors unter STREAMS zu einem Namen im Dateisystem auf. path ist der Pfadname des Objekts (Datei oder Dateiverzeichnis) im Namensraum des Dateisystems, dem vorher der Dateideskriptor mit fattach() zugeordnet wurde. Der Benutzer muss der Eigentümer der Datei oder ein Benutzer mit besonderen Rechten sein.

Ein erfolgreicher Aufruf von fdetach() hat folgende Auswirkungen: alle Pfadnamen, die die zugeordnete STREAMS-Datei bezeichnet haben, bezeichnen dann wieder das ursprüngliche Objekt, dem die STREAMS-Datei zugeordnet war. Alle nachfolgenden Operationen auf path arbeiten mit dem Knoten im Dateisystem und nicht mit der STREAMS-Datei.

Die Zugriffsrechte und der Zustand des Knotens werden so wiederhergestellt, wie sie vor der Zuordnung bestanden.

Alle offenen Datei-Deskriptoren, die eingerichtet wurden, während die STREAMS-Datei der mit path bezeichneten Datei zugeordnet war, beziehen sich auch nach derAusführung von fdetach() auf die STREAMS-Datei.

Wenn es keine offenen Datei-Deskriptoren oder andere Bezüge auf die STREAMS-Datei gibt, dann wirkt ein erfolgreicher fdetach() auf die zugeordnete Datei wie ein letzter close()-Aufruf auf diese Datei.

Returnwert

0

bei Erfolg

 

-1

bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

fdetach() schlägt fehl, wenn gilt:


EACCES

Eine Komponente des Pfades darf nicht durchsucht werden.


EPERM

Die effektive Benutzernummer des Prozesses ist nicht die des Eigentümers der von path bezeichneten Datei und der Prozess hat nicht die entsprechenden Zugriffsrechte.


ENOTDIR

Eine Komponente des Pfadnamen-Präfix ist kein Dateiverzeichnis.


ENOENT

Eine Komponente des Pfadnamens existiert nicht, oder path zeigt auf eine leere Zeichenkette.


EACCES

Eine Komponente des Pfades darf nicht durchsucht werden.


EINVAL

path ist keiner STREAMS-Datei zugeordnet.

 

ENAMETOOLONG



Die Länge von path überschreitet {PATH_MAX}, oder eine Komponente des Pfadnamens ist länger als{NAME_MAX}, während{_POSIX_NO_TRUNC} aktiv ist.


ELOOP

Bei der Übersetzung von path traten zuviele symbolische Verweise auf.

Siehe auch

close(), fattach(), stropts.h.