Loading

NOM

       unlink - Détruire un nom et éventuellement le fichier associé.

SYNOPSIS

       #include <unistd.h>

       int unlink(const char *pathname);

       unlink() détruit un nom dans le système de fichiers. Si ce nom était le
       dernier lien sur un fichier,  et  si  aucun  processus  n’a  ouvert  ce
       fichier,  ce  dernier est effacé, et l’espace qu’il utilisait est rendu
       disponible.

       Si le nom était le dernier lien sur un fichier,  mais  qu’un  processus
       conserve  encore le fichier ouvert, celui-ci continue d’exister jusqu’à
       ce que le dernier descripteur le référençant soit fermé.

       Si le nom correspond à un lien symbolique, le lien est supprimé.

       Si le nom correspond à une socket, une FIFO, ou un périphérique, le nom
       est  supprimé  mais  les  processus  qui  ont  ouvert  l’objet  peuvent
       continuer à l’utiliser.

VALEUR RENVOYÉE

       En cas de réussite, zéro est renvoyé, sinon -1  est  renvoyé  et  errno
       contient le code d’erreur.

ERREURS

       EACCES L’accès  en  écriture au répertoire contenant pathname n’est pas
              autorisé pour l’UID effectif du  processus,  ou  bien  l’un  des
              répertoires  de pathname n’autorise pas le parcours. (Voir aussi
              path_resolution(7).)

       EBUSY (pas sous Linux)
              Le fichier pathname ne peut pas être détruit avec unlink car  il
              est  utilisé  par  le  système  ou  par  un  autre processus, et
              l’implémentation considère que c’est une erreur.

       EFAULT pathname pointe en‐dehors de l’espace d’adressage accessible.

       EIO    Une erreur d’entrée-sortie s’est produite.

       EISDIR pathname est un répertoire. (Il s’agit  d’une  erreur  non-POSIX
              renvoyée par Linux depuis le 2.1.132).

       ELOOP  Trop de liens symboliques dans le chemin d’accès pathname.

       ENAMETOOLONG
              pathname est trop long.

       ENOENT Un  répertoire  dans  le chemin d’accès pathname n’existe pas ou
              est un lien symbolique pointant nulle part, ou pathname est vide

       ENOMEM Pas assez de mémoire pour le noyau.

       ENOTDIR
              Un élément du chemin d’accès pathname n’est pas un répertoire.

       EPERM  Le  système  ne  permet  pas la destruction des répertoires avec
              unlink, ou cette destruction nécessite  des  privilèges  que  le
              processus  appelant  n’a pas. (Il s’agit d’une erreur conseillée
              par POSIX. Comme précisé plus haut, Linux renvoie EISDIR dans ce
              cas.)

       EPERM (spécifique Linux)
              Le système de fichiers ne permet pas la destruction avec unlink.

       EPERM ou EACCES
              Le répertoire contenant pathname a son sticky bit (S_ISVTX) à 1,
              et  l’UID  effectif  du  processus  n’est ni celui du fichier ni
              celui du répertoire et le processus n’est pas  privilégié  (sous
              Linux : n’a pas la capacité CAP_FOWNER.

       EROFS  pathname  est placé sur un système de fichiers en lecture seule.

CONFORMITÉ

       SVr4, BSD 4.3, POSIX.1-2001.

BOGUES

       Des problèmes dans le protocole sous-jacent à NFS peuvent provoquer  la
       disparition inattendue de fichiers encore utilisés.

VOIR AUSSI

       rm(1),  chmod(2),  link(2),  mknod(2),  open(2),  rename(2),  rmdir(2),
       unlinkat(2), mkfifo(3), remove(3), path_resolution(7), symlink(7)

COLOPHON

       Cette page fait partie de  la  publication  3.23  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      être       trouvées       à       l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
       Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
       Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

       Veuillez  signaler  toute  erreur   de   traduction   en   écrivant   à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document
       en utilisant la commande « man -L C <section> <page_de_man> ».