Provided by: manpages-fr-dev_4.15.0-9_all bug

NOM

       realpath - Renvoyer le chemin d'accès absolu

SYNOPSIS

       #include <limits.h>
       #include <stdlib.h>

       char *realpath(const char *restrict path,
                      char *restrict resolved_path);

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

       realpath() :
           _XOPEN_SOURCE >= 500
               || /* Glibc since 2.19: */ _DEFAULT_SOURCE
               || /* Glibc <= 2.19: */ _BSD_SOURCE

DESCRIPTION

       realpath développe tous les  liens  symboliques,  et  résout  les  références  à  « /./ »,
       « /../ »  ainsi  que  les caractères « / » supplémentaires dans la chaîne, terminée par un
       caractère nul, pointée par path pour produire une forme canonique  du  chemin  absolu.  Le
       chemin  résultant  est  stocké  sous  la  forme d'une chaîne terminée par un caractère nul
       pouvant contenir jusqu'à PATH_MAX octets, dans le  tampon  pointé  par  resolved_path.  Le
       chemin résultant ne traversera plus de liens symboliques, et ne contiendra plus d'éléments
       « /./ » ou « /../ ».

       Si resolved_path est NULL, alors realpath()  utilise  malloc(3)  pour  allouer  un  tampon
       allant  jusqu'à  PATH_MAX  octets pour contenir le chemin trouvé, et retourner un pointeur
       sur ce tampon. L'appelant doit libérer ce tampon avec free(3).

VALEUR RENVOYÉE

       S'il n'y a pas d'erreur, realpath() renvoie un pointeur sur resolved_path.

       Sinon elle renvoie NULL, le contenu de resolved_path n'est pas défini, et errno  prend  la
       valeur du code d'erreur.

ERREURS

       EACCES La  permission  de  recherche ou de lecture n'est pas accordée pour un composant du
              chemin d'accès.

       EINVAL path est NULL (dans les versions de glibc précédant la 2.3, cette erreur est  aussi
              renvoyée si resolved_path est NULL).

       EIO    Une  erreur  d'entrée-sortie  est  survenue  lors  de  la lecture sur le système de
              fichiers.

       ELOOP  Trop de liens symboliques ont été rencontrés en parcourant le chemin.

       ENAMETOOLONG
              Un élément du chemin d'accès dépasse NAME_MAX caractères  de  long,  ou  le  chemin
              d'accès complet dépasse PATH_MAX caractères.

       ENOENT Le fichier indiqué n'existe pas.

       ENOMEM Plus assez de mémoire.

       ENOTDIR
              Un élément du chemin d'accès n'est pas un répertoire.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌────────────────────────────────────────────────────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├────────────────────────────────────────────────────────┼──────────────────────┼─────────┤
       │realpath()                                              │ Sécurité des threads │ MT-Safe │
       └────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

CONFORMITÉ

       BSD 4.4, POSIX.1-2001.

       POSIX.1  indique  que  le  comportement  dans  le  cas où resolved_path est NULL dépend de
       l'implémentation. POSIX.1-2008 spécifie le comportement décrit dans cette page.

NOTES

       Dans  BSD 4.4  et  Solaris,  la  limite  de  longueur  du  chemin  est  MAXPATHLEN   (dans
       <sys/param.h>).  SUSv2  conseille  PATH_MAX  et  NAME_MAX,  dans <limits.h> ou fournis par
       pathconf(3). Un fragment de code typique serait

           #ifdef PATH_MAX
             path_max = PATH_MAX;
           #else
             path_max = pathconf(path, _PC_PATH_MAX);
             if (path_max <= 0)
               path_max = 4096;
           #endif

       (Mais voir quand même la section des BOGUES).

   Extensions GNU
       Si l'appel échoue avec EACCES ou ENOENT alors que resolved_path n'est pas NULL,  alors  le
       préfixe de path qui n'est pas lisible ou qui n'existe pas est renvoyé dans resolved_path.

BOGUES

       La  version  du  standard POSIX.1-2001 de cette fonctions est erronée par construction car
       elle  ne  permet  pas  de  connaître  la  taille  nécessaire  pour  le  tampon  de  sortie
       resolved_path.  D'après  POSIX.1-2001,  un tampon de taille PATH_MAX suffit, mais PATH_MAX
       n'est pas nécessairement une constante définie et peut être obtenue avec  pathconf(3).  En
       outre,  interroger  pathconf(3) n'aide pas vraiment, car d'une part POSIX prévient que les
       résultats de pathconf(3) peuvent être immenses et inappropriés pour allouer de la  mémoire
       et  d'autre  part  pathconf(3)  peut  renvoyer  -1 indiquant que PATH_MAX est illimité. La
       fonctionnalité resolved_path == NULL, non standard dans POSIX.1-2008, permet d'éviter  ces
       problèmes.

VOIR AUSSI

       realpath(1), readlink(2), canonicalize_file_name(3), getcwd(3), pathconf(3), sysconf(3)

COLOPHON

       Cette  page  fait partie de la publication 5.13 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies et la dernière version de  cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

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> et David Prévot <david@tilapin.org>

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

                                           22 mars 2021                               REALPATH(3)