.\" -*- coding: UTF-8 -*- .\" This manpage is Copyright (C) 1992 Drew Eckhardt; .\" and Copyright (C) 1993 Ian Jackson .\" and Copyright (C) 2006, 2014 Michael Kerrisk. .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" Modified 1993-07-24 by Rik Faith .\" Modified 1996-09-08 by Arnt Gulbrandsen .\" Modified 1997-01-31 by Eric S. Raymond .\" Modified 2001-05-17 by aeb .\" Modified 2004-06-23 by Michael Kerrisk .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH UNLINK 2 "8. Oktober 2016" Linux Linux\-Programmierhandbuch .SH BEZEICHNUNG unlink, unlinkat \- löscht einen Namen und unter Umständen die Datei, auf die dieser verweist .SH ÜBERSICHT .nf \fB#include \fP .sp \fBint unlink(const char *\fP\fIPfadname\fP\fB);\fP .sp \fB#include \fP/* Definition der AT_*\-Konstanten */ \fB#include \fP .sp \fBint unlinkat(int \fP\fIdirfd\fP\fB, const char *\fP\fIPfadname\fP\fB, int \fP\fISchalter\fP\fB);\fP .fi .sp .in -4n Mit Glibc erforderliche Makros (siehe \fBfeature_test_macros\fP(7)): .in .sp \fBunlinkat\fP(): .PD 0 .ad l .RS 4 .TP 4 Seit Glibc 2.10: _POSIX_C_SOURCE\ >=\ 200809L .TP Vor Glibc 2.10: _ATFILE_SOURCE .RE .ad .PD .SH BESCHREIBUNG \fBunlink\fP() 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 das Objekt geöffnet haben, können es weiterhin benutzen. .SS unlinkat() Der Systemaufruf \fBunlinkat\fP() funktioniert genau wie entweder \fBunlink\fP() oder \fBrmdir\fP(2) (abhängig davon, ob \fISchalter\fP den Schalter \fBAT_REMOVEDIR\fP enthält), außer den hier beschriebenen Unterschieden. Falls der in \fIPfadname\fP übergebene Pfadname relativ ist wird er relativ zu dem im Dateideskriptor \fIdirfd\fP referenzierten Verzeichnis interpretiert (statt relativ zum aktuellen Arbeitsverzeichnis des aufrufenden Prozesses, wie es bei \fBunlink\fP() und \fBrmdir\fP(2) für einen relativen Pfadnamen der Fall ist). Falls der in \fIPfadname\fP übergebene Pfadname relativ ist und \fIdirfd\fP den besonderen Wert \fBAT_FDCWD\fP enthält wird \fIPfadname\fP relativ zum aktuellen Arbeitsverzeichnis des aufrufenden Prozesses interpretiert (wie bei \fBunlink\fP() und \fBrmdir\fP(2)). Falls der in \fIPfadname\fP übergebene Pfadname absolut ist, wird \fIdirfd\fP ignoriert. \fISchalter\fP ist eine Bitmaske, die entweder als 0 angegeben werden kann, oder mit durch logisches ODER verknüpften Werten der Schalter, die die Wirkung von \fBunlinkat\fP() steuern. Gegenwärtig wird nur ein einziger Schalter unterstützt: .TP \fBAT_REMOVEDIR\fP Standardmäßig führt \fBunlinkat\fP() das Äquivalent von \fBunlink\fP() auf \fIPfadname\fP aus. Falls der Schalter \fBAT_REMOVEDIR\fP angegeben ist, führt es das Äquivalent von \fBrmdir\fP(2) auf \fIPfadname\fP aus. .PP Lesen Sie \fBopenat\fP(2) für eine Beschreibung der Notwendigkeit von \fBunlinkat\fP(). .SH RÜCKGABEWERT Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird \-1 zurückgegeben und \fIerrno\fP entsprechend gesetzt. .SH FEHLER .TP \fBEACCES\fP Schreibzugriff auf das Verzeichnis, das \fIPfadname\fP enthält, ist für die aktuell effektive UID des Prozesses nicht erlaubt oder eines der Verzeichnisse in \fIPfadname\fP gewährt keinen Suchzugriff (siehe auch \fBpath_resolution\fP(7)). .TP \fBEBUSY\fP Für die Datei \fIPfadname\fP 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«). .TP \fBEFAULT\fP \fIpathname\fP zeigt aus dem für Sie zugänglichen Adressraum heraus. .TP \fBEIO\fP Es ist ein E/A\-Fehler (engl. I/O) aufgetreten. .TP \fBEISDIR\fP \fIPfadname\fP verweist auf ein Verzeichnis. (Dies ist ein nicht\-POSIX\-Wert, der von Linux seit 2.1.132 zurückgegeben wird.) .TP \fBELOOP\fP Bei der Auflösung von \fIPfadname\fP wurden zu viele symbolische Verknüpfungen gefunden. .TP \fBENAMETOOLONG\fP \fIpathname\fP war zu lang. .TP \fBENOENT\fP Eine Verzeichniskomponente von \fIPfadname\fP existiert nicht oder ist ein toter symbolischer Link oder \fIPfadname\fP ist leer. .TP \fBENOMEM\fP Es war nicht genügend Kernel\-Speicher verfügbar. .TP \fBENOTDIR\fP Eine als Verzeichnis benutzte Komponente von \fIpathname\fP ist kein Verzeichnis. .TP \fBEPERM\fP 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 \fBEISDIR\fP zurück. .TP \fBEPERM\fP (nur Linux) Das Dateisystem verwehrt das Lösen von Dateilinks. .TP \fBEPERM\fP oder \fBEACCES\fP Das Verzeichnis, welches \fIPfadname\fP enthält, hat das Sticky Bit (\fBS_ISVTX\fP) 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: ihm fehlt die \fBCAP_FOWNER\fP\-Capability). .TP \fBEROFS\fP \fIPfadname\fP bezieht sich auf eine Datei auf einem schreibgeschützten Dateisystem. .PP Die gleichen Fehler, die bei \fBunlink\fP() und \fBrmdir\fP(2) auftreten können, können auch für \fBunlinkat\fP() auftreten. Die folgenden zusätzlichen Fehler können für \fBunlinkat\fP() auftreten: .TP \fBEBADF\fP \fIdirfd\fP ist kein zulässiger Dateideskriptor. .TP \fBEINVAL\fP In \fISchalter\fP wurde ein ungültiger Schalter angegeben. .TP \fBEISDIR\fP \fIPfadname\fP bezieht sich auf ein Verzeichnis und \fBAT_REMOVEDIR\fP war in \fISchalter\fP nicht angegeben. .TP \fBENOTDIR\fP \fIPfadname\fP ist relativ und \fIdirfd\fP ist ein Dateideskriptor, der sich auf eine Datei statt auf ein Verzeichnis bezieht. .SH VERSIONEN \fBunlinkat\fP() wurde zu Linux in Kernel 2.6.16 hinzugefügt; Bibliotheksunterstützung wurde in Glibc in Version 2.4 hinzugefügt. .SH "KONFORM ZU" .\" SVr4 documents additional error .\" conditions EINTR, EMULTIHOP, ETXTBSY, ENOLINK. \fBunlink\fP(): SVr4, 4.3BSD, POSIX.1\-2001, POSIX.1\-2008. \fBunlinkat\fP(): POSIX.1\-2008. .SH ANMERKUNGEN .SS "Anmerkungen zur Glibc" Wenn in älteren Kerneln \fBunlinkat\fP() nicht verfügbar ist, weicht die Glibc\-Wrapper\-Funktion auf \fBunlink\fP() oder \fBrmdir\fP(2) aus. Wenn der \fIPfadname\fP relativ ist, konstruiert die Glibc einen Pfadnamen, der auf dem symbolischen Link in \fI/proc/self/fd\fP basiert, der dem \fInewdirfd\fP\-Argument entspricht. .SH FEHLER Unzulänglichkeiten in dem NFS unterliegenden Protokoll können das unerwartete Verschwinden von Dateien, welche noch benötigt werden, verursachen. .SH "SIEHE AUCH" \fBrm\fP(1), \fBunlink\fP(1), \fBchmod\fP(2), \fBlink\fP(2), \fBmknod\fP(2), \fBopen\fP(2), \fBrename\fP(2), \fBrmdir\fP(2), \fBmkfifo\fP(3), \fBremove\fP(3), \fBpath_resolution\fP(7), \fBsymlink\fP(7) .SH KOLOPHON Diese Seite ist Teil der Veröffentlichung 4.09 des Projekts Linux\-\fIman\-pages\fP. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter \%https://www.kernel.org/doc/man\-pages/. .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Joern Vehoff , Martin Schulze , Helge Kreutzmann , Martin Eberhard Schauer , Mario Blättermann und Dr. Tobias Quathamer 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 .