UNLINK(2) Manuel du programmeur Linux UNLINK(2) NOM unlink(1,2) - Dtruire un nom et ventuellement le fichier associ. SYNOPSIS #include <unistd.h> int unlink(1,2)(const char *pathname); DESCRIPTION unlink(1,2) dtruit un nom dans le systme 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 continue d'exister jusqu' ce que le dernier descripteur le rfrenant soit ferm. Si le nom correspond un lien symbolique, le lien est effac. Si le nom correspond une socket(2,7,n), une Fifo, ou un priphrique, le nom est effac mais les processus qui ont ouvert l'objet peuvent con- tinuer l'utiliser. VALEUR RENVOYE unlink(1,2) renvoie 0 s'il russit ou -1 s'il choue, auquel cas errno contient le code d'erreur. ERREURS EACCES L'accs en criture au rpertoire contenant pathname n'est pas autoris pour l'UID effectif du processus, ou bien l'un des rpertoires de pathname n'autorise pas le parcours. EPERM ou EACCESS Le rpertoire contenant pathname a son Sticky-Bit 1, et l'UID effectif du processus n'est ni celui du fichier ni celui du rpertoire. EPERM (spcifique Linux) Le systme de fichiers ne permet pas la destruction avec unlink. EPERM Le systme ne permet pas la destruction des rpertoires avec unlink(1,2), ou cette destruction ncessite des privilges que le processus appelant n'a pas. (Il s'agit d'une erreur conseille par POSIX). EISDIR pathname est un rpertoire. (Il s'agit d'une erreur non-POSIX renvoye par Linux depuis le 2.1.132). EBUSY (spcifique Linux) Le fichier pathname ne peut pas tre dtruit avec unlink(1,2) car il est utilis par le systme ou par un autre processus, et l'implmentation considre que c'est une erreur. EFAULT pathname pointe en dehors de l'espace d'adressage accessible ENAMETOOLONG pathname est trop long. ENOENT Un rpertoire dans le chemin d'accs pathname n'existe pas ou est un lien symbolique pointant nulle part. ENOTDIR Un lment du chemin d'accs pathname n'est pas un rper- toire. ENOMEM pas assez de mmoire pour le noyau EROFS pathname est plac sur un systme de fichiers en lecture seule. ELOOP Trop de liens symboliques dans le chemin d'accs pathname. EIO une erreur d'entre/sortie bas-niveau s'est produite. CONFORMIT SVr4, SVID, POSIX, X/OPEN, BSD 4.3. SVr4 mentionne les conditions d'erreur supplmentaires EINTR, EMULTIHOP, ETXTBSY, ENOLINK. BOGUES Des problmes dans le protocole sous-jacent NFS peuvent causer la disparition inattendue de fichiers encore en utilisation. VOIR AUSSI link(1,2)(2), rename(1,2,n)(2), open(2,3,n)(2), rmdir(1,2)(2), mknod(1,2)(2), mkfifo(1,3)(3), remove(3), rm(1). TRADUCTION Christophe Blaess, 1996-2003. LDP 18 juillet 2003 UNLINK(2)