rmdir(2) rmdir(2)
NAME
rmdir - Verzeichnis entfernen
SYNTAX
#include <unistd.h>
int rmdir(const char *path);
BESCHREIBUNG
rmdir() entfernt das Verzeichnis, das durch den Pfadnamen angegeben
ist, auf den path zeigt. Das Verzeichnis darf nur die Einträge "." und
".." enthalten.
Wenn path das Root-Verzeichnis oder das Verzeichnis eines aktiven Pro-
zesses bezeichnet, ist das Verhalten von rmdir() nicht spezifiziert.
Wenn der Link-Zähler des Verzeichnisses 0 wird und kein Prozeß das
Verzeichnis geöffnet hat, wird der vom Verzeichnis belegte Speicher
freigegeben. Auf das Verzeichnis kann nicht mehr zugegriffen werden.
Wenn einer oder mehrere Prozesse das Verzeichnis geöffnet haben, wäh-
rend der letzte Link entfernt wird, werden die Einträge "." und ".."
entfernt, bevor rmdir() zurückkehrt. Es können keine neuen Einträge in
dem Verzeichnis erzeugt werden, aber das Verzeichnis wird so lange
nicht entfernt, bis alle Verweise darauf geschlossen worden sind.
Wenn path ein symbolischer Link ist, wird dieser nicht verfolgt.
Nach erfolgreicher Beendigung kennzeichnet rmdir() die Felder stctime
und stmtime des übergeordneten Verzeichnisses zur Aktualisierung.
FEHLER
Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
errno(5).
Das angegebene Verzeichnis wird entfernt, sofern nicht einer oder meh-
rere der nachstehenden Punkte zutreffen:
EACCES Für eine Komponente des Pfadpräfixes wird die Suchbe-
rechtigung verweigert, oder für das Elternverzeichnis
des zu entfernenden Verzeichnisses wird die Schreibbe-
rechtigung verweigert.
EACCES Im übergeordneten Verzeichnis ist das Sticky-Bit
gesetzt, und das übergeordnete Verzeichnis gehört nicht
dem Benutzer; das Verzeichnis gehört nicht dem Benutzer
und kann vom Benutzer nicht beschrieben werden; der
Benutzer ist kein Systemverwalter.
EBUSY Das zu entfernende Verzeichnis ist das aktuelle Ver-
zeichnis des Systems oder eines anderen Prozesses.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
rmdir(2) rmdir(2)
EEXIST oder ENOTEMPTY
Das Verzeichnis enthält außer "." und ".." weitere Ein-
träge.
EFAULT path weist über den zugewiesenen Adreßraum des Prozesses
hinaus.
EINVAL Das Verzeichnis, das entfernt werden soll, ist das aktu-
elle Verzeichnis.
EINVAL Das Verzeichnis, das entfernt werden soll, ist der "."-
Eintrag eines Verzeichnisses.
EIO Ein E/A-Fehler ist während des Zugriffs auf das Dateisy-
stem aufgetreten.
ELOOP Bei der Auflösung von path wurden zuviele symbolische
Links angetroffen.
EMULTIHOP Die Komponenten von path erfordern den Sprung auf meh-
rere ferne Rechner, und das Dateisystem läßt dies nicht
zu.
ENAMETOOLONG Das Argument path ist länger als PATHMAX oder eine
Pfadkomponente ist länger als NAMEMAX.
ENOTDIR Eine Komponente des Pfads ist kein Verzeichnis.
ENOENT Das angegebene Verzeichnis ist nicht vorhanden oder ist
der Null-Pfadname.
EROFS Der zu entfernende Verzeichniseintrag ist Teil eines
schreibgeschützten Dateisystems.
EPERM oder EACCES
Das Flag SISVTX ist im Elternverzeichnis des zu entfer-
nenden Verzeichnisses gesetzt, und der Aufrufende ist
weder der Eigentümer des zu entfernenden Verzeichnisses
noch des Elternverzeichnisses und verfügt nicht über die
entsprechenden Berechtigungen
ENOLINK path weist auf einen fernen Rechner, und die Verbindung
zu diesem Rechner ist nicht mehr aktiv.
Die Funktion rmdir() kann bei folgender Bedingung fehlschlagen:
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
rmdir(2) rmdir(2)
ERGEBNIS
Bei erfolgreicher Beendigung liefert rmdir() 0 zurück. Andernfalls
wird -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.
SIEHE AUCH
mkdir(1), rm(1), rmdir(1), mkdir(2), remove(3C), unistd(4).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98