BEZEICHNUNG¶
unlink - löscht einen Namen und unter Umständen die Datei, auf die
dieser verweist
ÜBERSICHT¶
#include <unistd.h>
int unlink(const char *Pfadname);
BESCHREIBUNG¶
unlink() löscht einen Namen aus dem Dateisystem. Falls dieser Name
der letzte Link auf eine Datei war und kein Prozess die Datei geöffnet
hält, wird sie gelöscht und der von ihr belegte Speicherplatz wird
für die erneute Verwendung verfügbar gemacht.
Falls dieser Name der letzte Link auf die Datei war, aber diverse Prozesse die
Datei noch geöffnet haben, bleibt die Datei bestehen, bis der letzte auf
sie weisende Dateideskriptor gelöscht wird.
Falls der Name auf einen symbolischen Link verwies, so wird dieser Link
entfernt.
Falls der Name auf einen Socket, Fifo oder Gerät verwies, so wird der Name
dafür entfernt, aber Prozesse, die d Objekt geöffnet haben,
können es weiterhin benutzen.
RÜCKGABEWERT¶
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1
zurückgegeben und
errno entsprechend gesetzt.
FEHLER¶
- EACCES
- Schreibzugriff auf das Verzeichnis, das Pfadname
enthält, ist für die aktuell effektive UID des Prozesses nicht
erlaubt oder eines der Verzeichnisse in Pfadname gewährt
keinen Suchzugriff (siehe auch path_resolution(7)).
- EBUSY
- Für die Datei Pfadname kann der Link nicht
gelöst werden, weil er vom System oder einem anderen Prozess genutzt
wird; beispielsweise, wenn er ein Einhängepunkt ist oder die
NFS-Client-Software ihn erstellte, um einen aktiven aber ansonsten
namenlosen Inode zu repräsentieren (»NFS silly
renamed«).
- EFAULT
- Pfadname zeigt aus Ihrem adressierbaren Adressraum
heraus.
- EIO
- Es ist ein E/A-Fehler (engl. I/O) aufgetreten.
- EISDIR
- Pfadname verweist auf ein Verzeichnis. (Dies ist ein
nicht-POSIX-Wert, der von Linux seit 2.1.132 zurückgegeben
wird.)
- ELOOP
- Bei der Auflösung von Pfadname wurden zu viele
symbolische Verknüpfungen gefunden.
- ENAMETOOLONG
- Pfadname war zu lang.
- ENOENT
- Eine Verzeichniskomponente von Pfadname existiert
nicht oder ist ein toter symbolischer Link oder Pfadname ist
leer..
- ENOMEM
- Zu wenig Kernelspeicher verfügbar.
- ENOTDIR
- Eine als Verzeichnis benutzte Komponente von
Pfadname ist kein Verzeichnis.
- EPERM
- Das System verweigert die Aufhebung von Links zu
Verzeichnissen oder fordert Privilegien, die der aufrufende Prozess nicht
hat. (Dies ist die von POSIX vorgeschriebene Fehlerrückgabe. Wie oben
erwähnt gibt Linux in diesem Fall EISDIR zurück.
- EPERM (nur Linux)
- Das Dateisystem verwehrt das Lösen von
Dateilinks.
- EPERM oder EACCES
- Das Verzeichnis, welches Pfadname enthält, hat
das Sticky Bit ( S_ISVTX) gesetzt und die effektive UID des
Prozesses ist weder die UID der zu löschenden Datei noch die UID des
Verzeichnisses, das die Datei enthält und der Prozess ist nicht
privilegiert (Linux: im fehlt die CAP_FOWNER-Capability).
- EROFS
- Pfadname zeigt auf eine Datei auf einem
schreibgeschützten Dateisystem.
SVr4, 4.3BSD, POSIX.1-2001.
FEHLER¶
Unzulänglichkeiten in dem NFS unterliegenden Protokoll können das
unerwartete Verschwinden von Dateien, welche noch benötigt werden,
verursachen.
SIEHE AUCH¶
rm(1),
chmod(2),
link(2),
mknod(2),
open(2),
rename(2),
rmdir(2),
unlinkat(2),
mkfifo(3),
remove(3),
path_resolution(7),
symlink(7)
KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux-
man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler
gemeldet werden können, finden sich unter
http://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Joern Vehoff
<joern@vehoff.net>, Martin Schulze <joey@infodrom.org>, Helge
Kreutzmann <debian@helgefjell.de> und Martin Eberhard Schauer
<Martin.E.Schauer@gmx.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public
License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird
KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.