SYMLINK

Section : Manuel du programmeur Linux (2)
Mise à jour de la version anglaise : 26 juillet 2007
Index Menu principal  

NOM

symlink - Créer un nouveau nom pour un fichier  

SYNOPSIS

#include <unistd.h>

int symlink(const char *cible, const char *nom);

Exigences de macros de test de fonctionnalités pour la glibc (voir feature_test_macros(7)) :

symlink() : _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L  

DESCRIPTION

symlink() crée un lien symbolique avec le nom indiqué, et qui pointe sur la cible.

Les liens sont interprétés à l'exécution, comme si le contenu du lien était remplacé par le chemin d'accès pour trouver un fichier ou un répertoire.

Les liens symboliques peuvent contenir l'élément .. pour le chemin, qui (s'il est utilisé au début du lien) se réfère au répertoire parent où le lien réside.

Un lien symbolique (aussi nommé « 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 (S_ISVTX) positionné.

Si le nom existe il ne sera pas écrasé.  

VALEUR RENVOYÉE

Cet appel système renvoie zéro s'il réussit ou -1 s'il échoue auquel cas errno contient le code d'erreur.  

ERREURS

EACCES
L'écriture dans le répertoire contenant nom est interdite, ou l'un des répertoire composant le nom ne permet pas le parcours. (Voir aussi path_resolution(7).)
EEXIST
Le nom existe déjà.
EFAULT
oldpath ou newpath pointent en dehors de l'espace d'adressage accessible.
EIO
Une erreur d'entrées-sorties s'est produite.
ELOOP
Le nom contient une référence circulaire (à travers un lien symbolique).
ENAMETOOLONG
cible ou nom est trop long.
ENOENT
Un répertoire dans le chemin nom n'existe pas ou est un lien symbolique pointant nulle part. Ou encore cible est une chaîne vide.
ENOMEM
Pas assez de mémoire pour le noyau.
ENOSPC
Le périphérique n'a plus assez de place pour une entrée de répertoire.
ENOTDIR
Un composant du chemin d'accès nom n'est pas un répertoire.
EPERM
le système de fichiers contenant le nom ne permet pas la création de liens symboliques.
EROFS
Le chemin nom est sur un système de fichiers en lecture seule.
 

CONFORMITÉ

SVr4, BSD 4.3, POSIX.1-2001.  

NOTES

Il n'y a pas de vérification de l'existence de la cible.

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, utilisez link(2).  

VOIR AUSSI

ln(1), lchown(2), link(2), lstat(2), open(2), readlink(2), rename(2), symlinkat(2), unlink(2), path_resolution(7), symlink(7)  

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 15 octobre 1996 et révisée le 2 juillet 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 symlink ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.

 

Index

NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION

Dernière mise à jour : 2 juillet 2008