SYMLINK(2) Manuel du programmeur Linux SYMLINK(2)
NOM
symlink - Créer un nouveau nom pour un fichier.
SYNOPSIS
#include <unistd.h>
int symlink(const char *oldpath, const char *newpath);
DESCRIPTION
symlink crée un lien symbolique nommé oldpath qui pointe
sur newpath.
Les liens sont interprétés à l'exécution, comme si le con
tenu du lien était remplacé par le chemin d'accès pour
trouver un fichier ou un répertoire.
Les liens symboliques peuvent contenir les composants . et
.. pour le chemin, qui (s'ils sont utilisés au début du
lien) se réfèrent au répertoire où le lien réside et à son
répertoire parent.
Un lien symbolique (aussi nomme soft link) peut pointer
vers un fichier existant ou sur un fichier non-existant.
Les permissions d'accès à un lien symbolique sont sans
importance, le propriétaire est ignoré lorsque l'on suit
le lien, il n'est vérifié que pour supprimer ou renommer
le lien si celui ci se trouve dans un répertoire avec le
Sticky-Bit positionné.
Si newpath existe il ne sera pas écrasé.
VALEUR RENVOYÉE
symlink renvoie zéro s'il réussit ou -1 s'il échoue auquel
cas errno contient le code d'erreur.
ERREURS
EPERM le système de fichier contenant pathname ne permet
pas la création de liens symboliques.
EFAULT oldpath ou newpath pointent en dehors de l'espace
d'adressage accessible.
EACCES L'écriture dans le répertoire newpath est inter
dite pour l'UID effectif du processus, ou l'un des
répertoire composant newpath ne permet pas
l'exécution.
ENAMETOOLONG
oldpath ou newpath est trop long.
ENOENT Un répertoire dans le chemin newpath n'existe pas
ou est un lien symbolique pointant nulle part. Ou
encore oldpath est une chaîne vide.
Linux 2.0 12 Décembre 1998 1
SYMLINK(2) Manuel du programmeur Linux SYMLINK(2)
ENOTDIR Un composant du chemin d'accès newpath n'est pas
un répertoire.
ENOMEM Pas assez de mémoire pour le noyau.
EROFS Le fichier est sur un système de fichiers en lec
ture seule.
EEXIST newpath existe déjà.
ELOOP newpath contient une référence circulaire (à
travers un lien symbolique).
ENOSPC Le périphérique n'a plus assez de place pour une
entrée de répertoire.
EIO Une erreur d'entrée/sortie bas-niveau s'est pro
duite.
NOTES
Il n'y a pas de vérification de oldpath.
Effacer le nom référençant un lien symbolique effacera
effectivement le fichier (à moins qu'il ait d'autres liens
matériels). Si ce comportement est indésirable, utiliser
link.
CONFORMITÉ
SVr4, SVID, POSIX, BSD 4.3. SVr4 mentionne des codes
d'erreur supplémentaires EDQUOT, et ENOSYS.
BUGS
Voir open(2) concernant les multiples fichiers avec le
même nom, et NFS.
VOIR AUSSI
link(2), readlink(2), unlink(2), rename(2), open(2),
lstat(2), ln(1).
TRADUCTION
Christophe Blaess, 1997.
Linux 2.0 12 Décembre 1998 2