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

NOM

       realpath - Renvoyer le chemin d'accès absolu

SYNOPSIS

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

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

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

       realpath() :
           _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

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.

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

VERSIONS

       Sous Linux, cette fonction est apparue dans la libc 4.5.21.

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

       Le  prototype  de  realpath()  est  donné  dans  <unistd.h> dans les libc4 et libc5, mais dans <stdlib.h>
       partout ailleurs.

   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.

       Les implémentations dans les libc4 et libc5  contenaient  un  débordement  de  tampon  (corrigé  dans  la
       libc-5.4.13). Ainsi, les programmes Set-UID, comme mount(8), avaient besoin d'une version privée de cette
       routine.

VOIR AUSSI

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

COLOPHON

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

       Christophe      Blaess      <http://www.blaess.fr/christophe/>      (1996-2003),       Alain       Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Nicolas  François  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> ».

                                                  15 mars 2013                                       REALPATH(3)