Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ unlink(2) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

rm(1)

close(2)

link(2)

open(2)

rmdir(2)

remove(3C)

unistd(4)

unlink(2)                                                         unlink(2)

NAME
     unlink - Verzeichniseintrag entfernen

SYNTAX
     #include <unistd.h>

     int unlink(const char *path);

BESCHREIBUNG
     unlink() entfernt einen Link auf eine Datei. Wenn path einen symboli-
     schen Link angibt, entfernt unlink() diesen symbolischen Link und
     wirkt sich nicht auf eine Datei oder ein Verzeichnis aus, das vom Kon-
     text des symbolischen Links angegeben ist. Andernfalls entfernt
     unlink() den durch den Pfadnamen, auf den path zeigt, angegebenen Link
     und setzt den Link-Zähler der Datei, auf die der Link verweist, um
     eins zurück.

     Wenn der Link-Zähler der Datei 0 erreicht und die Datei von keinem
     Prozeß geöffnet ist, wird der von der Datei belegte Speicherplatz
     freigegeben und auf die Datei kann nicht mehr zugegriffen werden. Wenn
     die Datei von einem oder mehreren Prozessen geöffnet ist und der
     letzte Link entfernt wird, wird der Link entfernt, bevor unlink()
     zurückkehrt, der Inhalt der Datei wird jedoch erst gelöscht, wenn alle
     Verweise auf diese Datei geschlossen sind.

     Das Argument path darf kein Verzeichnis angeben, es sei denn, der Pro-
     zeß verfügt über die entsprechenden Berechtigungen, und die Implemen-
     tierung unterstützt die Verwendung von unlink() für Verzeichnisse.

     Nach erfolgreicher Ausführung markiert unlink() die Felder stctime
     und stmtime des Elternverzeichnisses zur Aktualisierung. Außerdem
     wird das Feld stctime der Datei zur Aktualisierung gekennzeichnet,
     wenn der Link-Zähler der Datei nicht 0 ist.

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

     Der Link auf die angegebene Datei wird entfernt, außer wenn einer oder
     mehrere der nachstehenden Punkte zutreffen:

     EACCES        Eine Komponente von path darf nicht durchsucht werden.

     EACCES        Die Schreiberlaubnis wird für das Verzeichnis verwei-
                   gert, das den zu entfernenden Link enthält.

     EACCES        Das übergeordnete Verzeichnis hat das Sticky-Bit
                   gesetzt, und der Benutzer darf nicht auf die Datei
                   schreiben; der Benutzer besitzt weder das übergeordnete
                   Verzeichnis noch die Datei.




Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

unlink(2)                                                         unlink(2)

     EBUSY         Der Link auf die durch das Argument path angegebene
                   Datei kann nicht entfernt werden, da die Datei vom
                   System oder einem anderen Prozeß verwendet wird und die
                   Implementierung dies als einen Fehler ansieht; oder oder
                   bei der durch path angegebenen Datei handelt es sich um
                   einen benannten Stream.

     EFAULT        path weist über den zugewiesenen Adreßraum des Prozesses
                   hinaus.

     EINTR         Ein Signal wurde während des unlink()-Systemaufrufs auf-
                   gefangen.

     ELOOP         Bei der Übersetzung von path wurden zu viele symbolische
                   Links gefunden.

     EMULTIHOP     Komponenten von path erfordern den Sprung auf ferne
                   Rechner, und das Dateisystem erlaubt dies nicht.

     ENAMETOOLONG  Die Länge von path überschreitet PATHMAX, oder die
                   Länge einer Komponente von path überschreitet NAMEMAX.

     ENOENT        Die genannte Datei ist nicht vorhanden oder ist ein
                   Null-Pfadname. Der Benutzer ist kein Systemverwalter.

     ENOTDIR       Eine Komponente von path ist kein Verzeichnis.

     EPERM         Bei der durch path angegebenen Datei handelt es sich um
                   ein Verzeichnis, und entweder der aufrufende Prozeß ver-
                   fügt nicht über die entsprechenden Berechtigungen oder
                   die Implementierung läßt die Verwendung von unlink() für
                   Verzeichnisse nicht zu.

     EPERM oder EACCES
                   Das Flag SISVTX ist auf das Verzeichnis mit der Datei
                   gesetzt, auf die durch das Argument path verwiesen wird,
                   und der aufrufende Prozeß ist weder der Eigentümer der
                   Datei noch der Eigentümer des Verzeichnisses, noch ver-
                   fügt er über die erforderlichen Berechtigungen.

     EROFS         Der zu entfernende Verzeichniseintrag ist Teil eines
                   schreibgeschützten Dateisystems.

     ENOLINK       path weist auf einen fernen Rechner, und die Verbindung
                   zu diesem Rechner ist nicht mehr aktiv.

     Die Funktion unlink() kann bei folgenden Bedingungen fehlschlagen,
     wobei der Link auf die Datei nicht entfernt wird:

     ENAMETOOLONG  Die Auflösung des Pfadnamens eines symbolischen Links
                   hat ein Zwischenergebnis erzeugt, dessen Länge PATHMAX
                   überschreitet.


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

unlink(2)                                                         unlink(2)

     ETXTBSY       Die Datei ist der letzte Link für eine reine Programmda-
                   tei, die gerade ausgeführt wird.

ANWENDUNGSZWECK
     Anwendungen sollten zum Entfernen eines Verzeichnisses die Funktion
     rmdir() verwenden.

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

SIEHE AUCH
     rm(1), close(2), link(2), open(2), rmdir(2), remove(3C), unistd(4).









































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

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