Provided by: manpages-fr-dev_4.23.1-1_all bug

NOM

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

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

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   (consulter
   feature_test_macros(7)) :

       symlink() :
           _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L
               || /* glibc <= 2.19 : */ _BSD_SOURCE

       symlinkat() :
           Depuis la glibc 2.10 :
               _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 (sauf quand la fonction  protected_symlinks  est  activé,
       comme  expliqué  dans proc(5)), 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 de fichier 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é.

       Consultez openat(2) pour une explication de la nécessité de symlinkat().

VALEUR RENVOYÉE

       En  cas  de succès, zéro est renvoyé. En cas d'erreur, -1 est renvoyé et errno est définie
       pour préciser l'erreur.

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

       EBADF  (symlinkat()) linkpath est un chemin relatif, mais  newdirfd  n'est  ni  de  valeur
              AT_FDCWD ni un descripteur de fichier valable.

       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 ou linkpath est une chaîne vide.

       ENOENT (symlinkat()) linkpath est un  chemin  relatif,  et  le  descripteur  newdirfd  est
              associé à un répertoire qui a été supprimé.

       ENOMEM La mémoire disponible du noyau n'était pas suffisante.

       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.

       ENOTDIR
              (symlinkat())  linkpath  est  un  chemin  relatif,  et  le descripteur newdirfd est
              associé à un fichier, 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.

STANDARDS

       POSIX.1-2008.

HISTORIQUE

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

       symlinkat()
              POSIX.1-2008. Linux 2.6.16, glibc 2.4.

   Notes de la glibc
       Dans les noyaux anciens où symlinkat() n'est pas disponible, la fonction d'enveloppe de la
       glibc a recours à l'utilisation de symlink(). Quand linkpath est  un  chemin  relatif,  la
       glibc  construit un chemin basé sur le lien symbolique dans /proc/self/fd qui correspond à
       l'argument newdirfd.

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), namei(1), lchown(2), link(2), lstat(2), open(2), readlink(2), rename(2), unlink(2),
       path_resolution(7), symlink(7)

TRADUCTION

       La traduction française de cette  page  de  manuel  a  été  créée  par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,  Stéphan  Rafin  <stephan.rafin@laposte.net>, Thierry
       Vignaud <tvignaud@mandriva.com>, François Micaux, Alain  Portal  <aportal@univ-montp2.fr>,
       Jean-Philippe    Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-
       luc.coulon@wanadoo.fr>,   Julien    Cristau    <jcristau@debian.org>,    Thomas    Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,  Denis
       Barbier   <barbier@debian.org>,   David   Prévot  <david@tilapin.org>,  Frédéric  Hantrais
       <fhantrais@gmail.com> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.