Loading

NOM

       link - Crée un nouveau nom pour un fichier

SYNOPSIS

       #include <unistd.h>

       int link(const char *oldpath, const char *newpath);

       link()  crée  un nouveau lien (aussi appelé lien matériel ou hard link)
       sur un fichier existant.

       Si newpath existe, il ne sera pas écrasé.

       Ce nouveau nom pourra être utilisé exactement comme l’ancien quelle que
       soit  l’opération.  Les deux noms réfèrent au même fichier (et ont donc
       les  mêmes  permissions  et  propriétaire)  et  il  est  impossible  de
       déterminer quel nom était l’original.

VALEUR RENVOYÉE

       En  cas  de  réussite,  zéro est renvoyé, sinon -1 est renvoyé et errno
       contient le code d’erreur.

ERREURS

       EACCES L’écriture  dans  le  répertoire  contenant  newpath  n’est  pas
              autorisée   pour  l’UID  effectif  du  processus,  ou  l’un  des
              répertoires de oldpath ou newpath  ne  permet  pas  le  parcours
              (exécution). Voir aussi path_resolution(7).

       EEXIST newpath existe déjà.

       EFAULT oldpath  ou  newpath  pointent en dehors de l’espace d’adressage
              accessible.

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

       ELOOP  Trop de liens  symboliques  ont  été  rencontrés  en  parcourant
              oldpath ou newpath.

       EMLINK Le  fichier référencé par oldpath possède déjà le nombre maximal
              de liens.

       ENAMETOOLONG
              oldpath ou newpath est trop long.

       ENOENT Un répertoire contenu dans oldpath ou newpath n’existe  pas,  ou
              est un lien symbolique pointant nulle part.

       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 élément du  chemin  d’accès  oldpath  ou  newpath  n’est  pas
              réellement un répertoire.

       EPERM  oldpath est un répertoire.

       EPERM  Le  système  de  fichiers contenant oldpath et newpath ne permet
              pas la création de liens matériels.

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

       EXDEV  oldpath  et  newpath  ne  résident  pas  sur  le même système de
              fichiers. (Linux permet de  monter  un  système  de  fichiers  à
              différents   endroits,   mais   link()  ne  fonctionne  pas  sur
              différents points de montage, même si  le  système  de  fichiers
              sous‐jacent est le même.

CONFORMITÉ

       SVr4, BSD 4.3, POSIX.1-2001 (mais consultez la section NOTES).

NOTES

       Les  liens  matériels  créés  par  link(), ne peuvent pas s’étendre sur
       plusieurs systèmes de fichiers. Utilisez plutôt symlink(2) si ceci  est
       nécessaire.

       Selon  POSIX.1-2001,  link()  devrait  déréférencer oldpath s’il s’agit
       d’un lien symbolique. Cependant, depuis  le  noyau  2.0,  Linux  ne  se
       comporte  pas  comme  cela :  si  oldpath est un lien symbolique, alors
       newpath est créé comme un lien matériel vers le même  fichier  de  lien
       symbolique (c’est‐à‐dire que newpath devient un lien symbolique vers le
       fichier sur lequel pointe oldpath).  Certaines  autres  implémentations
       ont   le   même   comportement   que   Linux.  POSIX.1-2008  change  la
       spécification de link(), en rendant dépendant  de  l’implémentation  le
       fait que oldpath est déréférencé s’il s’agit d’un lien symbolique. Pour
       un contrôle précis sur le traitement  des  liens  symboliques  pour  la
       création d’un lien, consultez linkat(2).

BOGUES

       Sur  les  systèmes de fichiers NFS, le code de retour peut être faux si
       le serveur NFS a créé correctement le lien mais s’est arrêté  avant  de
       donner le code de retour. Utiliser dans ce cas stat(2) pour vérifier si
       le lien a été effectivement créé.

VOIR AUSSI

       ln(1), linkat(2), open(2), rename(2), stat(2),  symlink(2),  unlink(2),
       path_resolution(7), symlink(7)

COLOPHON

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

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

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