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

NOM

       realpath - Renvoyer le chemin d'accès absolu

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

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

       char *realpath(const char *restrict chemin,
                      char *restrict chemin_résolu);

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

       realpath() :
           _XOPEN_SOURCE >= 500
               || /* glibc >= 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  w / x supplémentaires dans la chaîne, terminée par un caractère NULL, pointée par chemin 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  NULL  pouvant  contenir  jusqu'à PATH_MAX octets, dans le tampon pointé par
       chemin_résolu. Le chemin résultant ne  traversera  plus  de  liens  symboliques  et  ne  contiendra  plus
       d'éléments « /./ » ou « /../ ».

       Si  chemin_résolu  est  NULL,  alors  realpath()  utilise malloc(3) pour allouer un tampon allant jusqu'à
       PATH_MAX octets pour contenir le chemin trouvé, et retourne 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 chemin_résolu.

       Sinon  elle  renvoie  NULL, le contenu de chemin_rséolu 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 chemin est NULL (avant la glibc 2.3, cette erreur est aussi renvoyée si chemin_résolu est NULL).

       EIO    Une erreur d'entrée-sortie s'est produite durant la lecture du 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 │
       └──────────────────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

VERSIONS

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

STANDARDS

       POSIX.1-2008.

HISTORIQUE

       4.4BSD, POSIX.1-2001, Solaris.

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

       Dans  4.4BSD  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.)

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 chemin_résolu.  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é chemin_résolu == 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)

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> et bubu <bubub@no-log.org>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 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.

Pages du manuel de Linux 6.9.1                     2 mai 2024                                        realpath(3)