Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

rmdir - Dateiverzeichnis löschen

&pagelevel(4)&pagelevel

Definition

#include <unistd.h>

int rmdir(const char *path);

Beschreibung

rmdir() löscht ein Dateiverzeichnis, dessen Name durch path angegeben wird. Das Dateiverzeichnis wird nur dann gelöscht, wenn es ein leeres Dateiverzeichnis ist.

Wenn path ein symbolischer Verweis ist, wird ihm nicht gefolgt.

Wenn path das Root-Verzeichnis ist, wird path auf EBUSY gesetzt. Wenn path das aktuelle Dateiverzeichnis eines aktiven Prozesses ist, ist das Verhalten von rmdir() nicht spezifiziert.

Wenn der Verweiszähler des Dateiverzeichnisses gleich 0 wird und kein Prozess das Dateiverzeichnis geöffnet hat, wird der vom Dateiverzeichnis belegte Speicher freigegeben. Auf das Dateiverzeichnis kann nicht länger zugegriffen werden. Wenn ein oder mehrere Prozesse das Dateiverzeichnis geöffnet haben, während der letzte Verweis entfernt wird, werden die Einträge . und .. entfernt, bevor rmdir() zurückkehrt. Es können keine neuen Einträge mehr in diesem Dateiverzeichnis vorgenommen werden; das Dateiverzeichnis wird jedoch erst dann entfernt, wenn alle Verweise auf das Dateiverzeichnis geschlossen worden sind.

Bei erfolgreicher Beendigung kennzeichnet rmdir() die Felder st_ctime und st_mtime des übergeordneten Dateiverzeichnisses zur Aktualisierung.

Returnwert

0

bei Erfolg.

 

-1

bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

rmdir() schlägt fehl, wenn gilt:

 

EACCES

Für eine Komponente des Pfades ist kein Suchrecht vorhanden, oder das Schreibrecht für das übergeordnete Dateiverzeichnis des zu löschenden Dateiverzeichnisses ist nicht vorhanden.

 

EBUSY

Das zu entfernende Dateiverzeichnis ist das aktuelle Dateiverzeichnis des Systems.

 

EEXIST oder ENOTEMPTY 



path bezeichnet ein Dateiverzeichnis, das nicht leer ist.

 

Erweiterung

 

EFAULT

path weist über den zugewiesenen Adressraum des Prozesses hinaus. (Ende)

 

EINVAL

Verzeichnis, das entfernt werden soll, ist das aktuelle Dateiverzeichnis.


EIO

Ein Ein-/Ausgabe-Fehler ist während des Zugriffs auf das Dateisystem aufgetreten.


ELOOP

Bei der Übersetzung von path wurden zuviele symbolische Verweise angetroffen.

 

ENAMETOOLONG

 

Die Länge von path überschreitet {PATH_MAX} oder eine Pfadnamenkomponente ist länger als {NAME_MAX}, und {_POSIX_NO_TRUNC} ist aktiv.

 

ENOENT

path bezeichnet ein nicht-existierendes Dateiverzeichnis oder zeigt auf eine leere Zeichenkette.

 

ENOTDIR

Eine Komponente des Pfades ist kein Dateiverzeichnis.

 

EROFS

Der zu löschende Dateiverzeichniseintrag befindet sich in einem schreibgeschützten Dateisystem.

Hinweis

rmdir() wird nur für POSIX-Dateien ausgeführt.

Siehe auch

mkdir(), remove(), unlink(), unistd.h.