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> ».