unlink(2) | System Calls Manual | unlink(2) |
unlink, unlinkat - löscht einen Namen und unter Umständen die Datei, auf die dieser verweist
Standard-C-Bibliothek (libc, -lc)
#include <unistd.h>
int unlink(const char *Pfadname);
#include <fcntl.h> /* Definition der AT_*-Konstanten */ #include <unistd.h>
int unlinkat(int Verzdd, const char *Pfadname, int Schalter);
unlinkat():
Seit Glibc 2.10: _POSIX_C_SOURCE >= 200809L Vor Glibc 2.10: _ATFILE_SOURCE
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 referenzierte Name ein symbolischer Link ist, wird der Link entfernt.
Falls der Name auf einen Socket, FIFO oder Gerät verwies, so wird der Name dafür entfernt, aber Prozesse, die das Objekt geöffnet haben, können es weiterhin benutzen.
Der Systemaufruf unlinkat() funktioniert genau wie entweder unlink() oder rmdir(2) (abhängig davon, ob Schalter den Schalter AT_REMOVEDIR enthält), außer den hier beschriebenen Unterschieden.
Falls der in Pfadname übergebene Pfadname relativ ist wird er relativ zu dem im Dateideskriptor Verzdd referenzierten Verzeichnis interpretiert (statt relativ zum aktuellen Arbeitsverzeichnis des aufrufenden Prozesses, wie es bei unlink() und rmdir(2) für einen relativen Pfadnamen der Fall ist).
Falls der in Pfadname übergebene Pfadname relativ ist und Verzdd den besonderen Wert AT_FDCWD enthält wird Pfadname relativ zum aktuellen Arbeitsverzeichnis des aufrufenden Prozesses interpretiert (wie bei unlink() und rmdir(2)).
Falls der in Pfadname übergebene Pfadname absolut ist, wird Verzdd ignoriert.
Schalter ist eine Bitmaske, die entweder als 0 angegeben werden kann, oder mit durch logisches ODER verknüpften Werten der Schalter, die die Wirkung von unlinkat() steuern. Gegenwärtig wird nur ein einziger Schalter unterstützt:
Lesen Sie openat(2) für eine Beschreibung der Notwendigkeit von unlinkat().
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.
Die gleichen Fehler, die bei unlink() und rmdir(2) auftreten können, können auch für unlinkat() auftreten. Die folgenden zusätzlichen Fehler können für unlinkat() auftreten:
unlinkat() wurde zu Linux in Version 2.6.16 hinzugefügt; Bibliotheksunterstützung wurde in Glibc in Version 2.4 hinzugefügt.
unlink(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008.
unlinkat(): POSIX.1-2008.
Wenn in älteren Kerneln unlinkat() nicht verfügbar ist, weicht die Glibc-Wrapper-Funktion auf unlink() oder rmdir(2) aus. Wenn Pfadname relativ ist, konstruiert die Glibc einen Pfadnamen, der auf dem symbolischen Link in /proc/self/fd basiert, der dem Verzdd-Argument entspricht.
Unzulänglichkeiten in dem NFS unterliegenden Protokoll können das unerwartete Verschwinden von Dateien, welche noch benötigt werden, verursachen.
rm(1), unlink(1), chmod(2), link(2), mknod(2), open(2), rename(2), rmdir(2), mkfifo(3), remove(3), path_resolution(7), symlink(7)
Die deutsche Übersetzung dieser Handbuchseite wurde von Joern Vehoff <joern@vehoff.net>, Martin Schulze <joey@infodrom.org>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>, Helge Kreutzmann <debian@helgefjell.de>, Mario Blättermann <mario.blaettermann@gmail.com> und Dr. Tobias Quathamer <toddy@debian.org> 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 die Mailingliste der Übersetzer.
5. Februar 2023 | Linux man-pages 6.03 |