Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       symlink, symlinkat - Créer un nouveau nom pour un fichier

SYNOPSIS

       #include <unistd.h>

       int symlink(const char *target, const char *linkpath);

       #include <fcntl.h> /* Définition des constantes AT_* */
       #include <unistd.h>

       int symlinkat(const char *target, int newdirfd, const char *linkpath);

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

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

       symlinkat():
           Depuis la glibc 2.10 :
               _XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
           Avant la glibc 2.10 :
               _ATFILE_SOURCE

DESCRIPTION

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

       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 .. pour le chemin, qui (s'il est utilisé  au  début
       du lien) se réfère aux répertoires parents du lien.

       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 linkpath existe, il ne sera pas écrasé.

   symlinkat()
       L'appel système symlinkat() fonctionne exactement comme symlink(), les seules  différences
       étant décrites ici.

       Si  linkpath est un chemin relatif, il est interprété relativement au répertoire référencé
       par le descripteur newdirfd (plutôt que par rapport au répertoire courant, comme c'est  le
       cas avec symlink()).

       Si  linkpath  est relatif et si newdirfd a la valeur spéciale AT_FDCWD, alors linkpath est
       interprété relativement au  répertoire  de  travail  du  processus  appelant,  comme  pour
       symlink().

       Si linkpath est un chemin absolu, newdirfd est ignoré.

VALEUR RENVOYÉE

       S'il  réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et remplit errno en
       conséquence.

ERREURS

       EACCES L'écriture dans le  répertoire  contenant  linkpath  est  interdite,  ou  l'un  des
              répertoires  composant  linkpath  ne  permet  pas  le  parcours.  (Consultez  aussi
              path_resolution(7).)

       EDQUOT Le quota de ressources de l'utilisateur sur le système de fichiers a  été  atteint.
              Les   ressources   peuvent  être  des  inœuds  ou  des  blocs  de  disque,  suivant
              l'implémentation sur le système de fichiers.

       EEXIST linkpath existe déjà.

       EFAULT target ou linkpath pointent en dehors de l'espace d'adressage accessible.

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

       ELOOP  linkpath contient une référence circulaire (à travers un lien symbolique).

       ENAMETOOLONG
              target ou linkpath est trop long.

       ENOENT Un répertoire dans le chemin linkpath  n'existe  pas  ou  est  un  lien  symbolique
              pointant nulle part. Ou encore target est une chaîne vide.

       ENOMEM Pas assez de mémoire pour le noyau.

       ENOSPC Le  périphérique  contenant le fichier n'a pas de place pour une nouvelle entrée de
              répertoire.

       ENOTDIR
              Un composant utilisé comme un répertoire dans le chemin linkpath n'est en fait  pas
              un répertoire.

       EPERM  le  système  de  fichiers  contenant  linkpath  ne  permet pas la création de liens
              symboliques.

       EROFS  Le chemin linkpath se trouve sur un système de fichiers en lecture seule.

       Les erreurs supplémentaires suivantes peuvent également se produire pour symlinkat() :

       EBADF  newdirfd n'est pas un descripteur de fichier valable.

       ENOTDIR
              linkpath est un chemin relatif,  et  le  descripteur  newdirfd  est  associé  à  un
              fichier, pas à un répertoire.

VERSIONS

       symlinkat()  a  été ajouté au noyau Linux dans sa version 2.6.16 ; la glibc le gère depuis
       la version 2.4.

CONFORMITÉ

       symlink() : SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008.

       symlinkat() : POSIX.1-2008.

NOTES

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

       Effacer le nom référencé par un lien symbolique effacera effectivement le fichier (à moins
       qu'il ait d'autres liens matériels). Si ce comportement est indésirable, utiliser link().

VOIR AUSSI

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

COLOPHON

       Cette page fait partie de la publication 3.65 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

       Depuis   2010,   cette   traduction   est   maintenue   à   l'aide   de    l'outil    po4a
       <http://po4a.alioth.debian.org/>  par l'équipe de traduction francophone au sein du projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe   Blaess   <http://www.blaess.fr/christophe/>   (1996-2003),    Alain    Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Julien  Cristau  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

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