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

NOM

       linkat - Créer un lien vers un fichier relatif à un répertoire

SYNOPSIS

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

       int linkat(int olddirfd, const char *oldpath,
                  int newdirfd, const char *newpath, int flags);

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

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

DESCRIPTION

       L'appel  système  linkat()  fonctionne  exactement  comme  link(2),  les  seules différences étant celles
       décrites dans cette page.

       Si le chemin donné dans oldpath est relatif, il est interprété par rapport au répertoire référencé par le
       descripteur de fichier olddirfd (plutôt que par rapport au  répertoire  courant  du  processus  appelant,
       comme dans link(2)).

       Si  oldpath est relatif et olddirfd a la valeur spéciale AT_FDCWD, oldpath est interprété relativement au
       répertoire courant du processus appelant, comme link(2).

       Si oldpath est un chemin absolu, olddirfd est ignoré.

       L'interprétation de newpath est identique à celle de oldpath, excepté qu'un chemin relatif est interprété
       par rapport au répertoire correspondant à newdirfd.

       Les valeurs suivantes peuvent être combinées avec un OU binaire dans le paramètre flags :

       AT_EMPTY_PATH (depuis Linux 2.6.39)
              Si oldpath est une chaîne vide, créer un lien vers le fichier référencé  par  olddirfd  (qui  peut
              avoir  été obtenu en utilisant open(2) avec le drapeau O_PATH). Dans ce cas, olddirfd peut référer
              à tout type  de  fichier,  pas  uniquement  un  répertoire.  L'appelant  doit  avoir  la  capacité
              CAP_DAC_READ_SEARCH  pour utiliser ce drapeau. Cette sécurité empêche des utilisateurs arbitraires
              de créer des liens matériels en utilisant des descripteurs  de  fichiers  reçus  via  socket  UNIX
              (consultez la discussion au sujet de SCM_RIGHTS dans unix(7)).

       AT_SYMLINK_FOLLOW (depuis Linux 2.6.18)
              Par défaut, linkat() ne déréférence pas oldpath si c'est un lien symbolique (de même que link(2)).
              L'attribut  AT_SYMLINK_FOLLOW peut être passé dans flags pour forcer le déréférencement de oldpath
              si c'est un lien symbolique.

       Avant le noyau 2.6.18, l'argument flags n'était pas utilisé, et devait être nul.

VALEUR RENVOYÉE

       S'il réussit, linkat() renvoie zéro. En cas d'erreur, il renvoie -1  et  remplit  errno  avec  la  valeur
       d'erreur.

ERREURS

       Les  erreurs  renvoyées  par  link(2)  peuvent  aussi  l'être  par  linkat(). Les erreurs supplémentaires
       suivantes peuvent également se produire pour linkat() :

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

       EINVAL flags contient un drapeau invalide.

       ENOENT AT_EMPTY_PATH est indiqué dans flags mais l'appelant n'a pas la capacité CAP_DAC_READ_SEARCH.

       ENOENT Une tentative de lier vers le fichier /proc/self/fd/NN correspondant à un descripteur  de  fichier
              créé avec

                  open(path, O_TMPFILE | O_EXCL, mode);

              a été réalisée. Consultez open(2).

       ENOTDIR
              oldpath  est  un  chemin  relatif, et olddirfd est un descripteur de fichier ne référençant pas un
              répertoire ; ou bien c'est le cas pour newpath et newdirfd.

VERSIONS

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

CONFORMITÉ

       POSIX.1-2008.

NOTES

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

VOIR AUSSI

       link(2), openat(2), path_resolution(7), symlink(7)

COLOPHON

       Cette page fait partie de la publication 3.57 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/>.

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

Linux                                            17 janvier 2014                                       LINKAT(2)