rmdir − entferne ein Verzeichnis
#include <unistd.h>
int rmdir(const char *pathname);
rmdir entfernt ein Verzeichnis, das leer sein muss.
Bei Erfolg wird 0 zurückgegeben, bei einem Fehler −1 und errno wird entsprechend gesetzt.
EPERM |
Das Dateisystem, was pathname enthält, unterstützt das Entfernen von Verzeichnissen nicht. |
||
EFAULT |
pathname zeigt außerhalb des erreichbaren Adressraumes |
||
EACCES |
Schreibzugriff auf das Verzeichnis, welches pathname enthält, ist für die effektive UID des Prozesses nicht erlaubt, oder eines der Verzeichnisse in pathname gibt kein Durchsuch-Rechte (execute) . |
||
EPERM |
Das Verzeichnis, welches pathname enthält, hat das Sticky-Bit (S_ISVTX) gesetzt und die effektive UID des Prozesses ist weder die UID der Datei, die gelöscht werden soll, noch die des Verzeichnisses, das sie enthält. |
ENAMETOOLONG
pathname ist zu lang.
ENOENT |
Ein Teil des Verzeichnisses in pathname existiert nicht, oder ist ein kaputter symbolischer Link. |
||
ENOTDIR |
pathname, oder ein als Verzeichnis benutzter Teil von pathname, ist kein Verzeichnis. |
ENOTEMPTY
pathname enthält andere Einträge als . und .. (das Verzeichnis ist nicht leer).
EBUSY |
pathname ist das aktuelle Verzeichnis oder das Stammverzeichnis eines Prozesses. |
||
ENOMEM |
Nicht genug Kernelspeicher vorhanden. |
||
EROFS |
pathname verweist auf eine Datei auf einem nur-lesbaren Dateisystem. |
||
ELOOP |
Zu viele symbolische Links beim Auflösen von pathname. |
SVr4, SVID, POSIX, BSD 4.3
Bestimmte Zustände in dem Protokoll, welchem NFS unterliegt, können dazu führen, dass Verzeichnisse, die noch benutzt werden, unerwartet verschwinden.