Sous-routine rmdir

Objectif

Supprime un répertoire.

Bibliothèque

Bibliothèque C standard (libc.a)

Syntaxe

#include <unistd.h>
int rmdir ( Path)
const char *Path;

Descriptif

La sous-routine Rmdir supprime le répertoire spécifié par le paramètre Chemin . Si Network File System (NFS) est installé sur votre système, ce chemin peut se croiser dans un autre noeud.

Pour que le sous-programme Rmdir s'exécute correctement, le processus appelant doit disposer d'un accès en écriture au répertoire parent du paramètre Chemin .

En outre, si le répertoire parent de Path possède l' attribut de bit de rappel (décrit dans le fichier sys/mode.h ), le processus appelant doit comporter l'un des éléments suivants:

  • ID utilisateur effectif égal au répertoire à supprimer
  • ID utilisateur effectif égal à l'ID propriétaire du répertoire parent de Chemin
  • Droits utilisateur root .

Paramètres

Article Descriptif
PATH Indique le nom du chemin d'accès au répertoire. Le répertoire que vous indiquez doit être:
Vide
Le répertoire ne contient aucune entrée autre que. (point) et .. (point dot).
Très bien formé
Si le. (point) dans le paramètre Chemin , il doit se référer au même répertoire que Chemin. Exactement un répertoire a un lien vers le paramètre Chemin , à l'exception de l'auto-référentiel. (point). Si le .. (dot dot) dans Chemin existe, il doit se référer au répertoire qui contient une entrée pour Chemin.

Valeurs renvoyées

Une fois l'exécution terminée, la sous-routine Rmdir renvoie une valeur de 0. Sinon, la valeur -1 est renvoyée, le répertoire spécifié n'est pas modifié et la variable globale errno est définie pour indiquer l'erreur.

Codes d'erreur

La sous-routine Rmdir échoue et le répertoire n'est pas supprimé si les erreurs suivantes se produisent:

Article Descriptif
EACCES Il n'existe pas de droit de recherche sur un composant du préfixe de chemin, ou il n'y a pas de droit d'accès en écriture sur le répertoire parent du répertoire à supprimer.
EBUSY Le répertoire est utilisé comme point de montage.
EEXISTE ou ENOTEMPTY Le répertoire nommé par le paramètre Chemin n'est pas vide.
ENAMETOOLONG La longueur du paramètre Chemin dépasse CHEMIN_MAX; ou un composant de nom de chemin plus long que NOM_MAX et POSIX_NON_MA_DONNÉES est en vigueur.
ENOENT Le répertoire nommé par le paramètre Chemin n'existe pas ou le paramètre Chemin pointe vers une chaîne vide.
ENOTDIR Un composant spécifié par le paramètre Chemin n'est pas un répertoire.
EINVAL Le répertoire nommé par le paramètre Chemin n'est pas bien formé.
EROFS Le répertoire nommé par le paramètre Chemin réside sur un système de fichiers en lecture seule.

Le sous-programme Rmdir peut être rejeté pour d'autres raisons.

Si NFS est installé sur le système, la sous-routine rmdir échoue si les conditions suivantes sont réunies:

Article Descriptif
ETIMEDOUT La connexion a expiré.