Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       realpath - Renvoie le chemin d'acces absolu

SYNOPSIS

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

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

   Exigences  de  macros  de  test de fonctionnalites pour la glibc (consultez
   feature_test_macros(7)) :

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

DESCRIPTION

       realpath developpe tous les liens symboliques, et resout les references
       a   << /./ >>,   << /../ >>   ainsi   que   les   caracteres    << / >>
       supplementaires  dans la chaine, terminee par un caractere nul, pointee
       par path pour produire une forme canonique du chemin absolu. Le  chemin
       resultant  est  stocke  sous  la  forme  d'une  chaine  terminee par un
       caractere nul pouvant contenir jusqu'a PATH_MAX octets, dans le  tampon
       pointe  par  resolved_path.  Le  chemin resultant ne traversera plus de
       liens symboliques,  et  ne  contiendra  plus  d'elements  << /./ >>  ou
       << /../ >>.

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

VALEUR RENVOY'EE

       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 defini,
       et errno prend la valeur du code d'erreur.

ERREURS

       EACCES La permission de recherche ou de lecture n'est pas accordee pour
              un composant du chemin d'acces.

       EINVAL Soit  path,  soit  resolved_path  est  NULL (dans la libc5, cela
              declenchait une erreur de segmentation). Mais voir quand meme la
              section NOTES ci-dessous.

       EIO    Une  erreur  d'entree-sortie est survenue lors de la lecture sur
              le systeme de fichiers.

       ELOOP  Trop de liens symboliques ont ete rencontres  en  parcourant  le
              chemin.

       ENAMETOOLONG
              Un  element  du  chemin  d'acces  depasse NAME_MAX caracteres de
              long, ou le chemin d'acces complet depasse PATH_MAX caracteres.

       ENOENT Le fichier indique n'existe pas.

       ENOTDIR
              Un element du chemin d'acces n'est pas un repertoire.

VERSIONS

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

CONFORMIT'E

       BSD 4.4, POSIX.1-2001.

       POSIX.1 indique que le comportement dans le cas  ou  resolved_path  est
       NULL  depend de l'implementation. POSIX.1-2008 specifie le comportement
       decrit 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 meme la section des BOGUES).

       Les  versions  BSD 4.4,  Linux  et  SUSv2  renvoient toujours un chemin
       absolu. Solaris peut renvoyer un chemin relatif si l'argument path  est
       relatif.  Le prototype de realpath() est donne dans <unistd.h> dans les
       libc4 et libc5, mais dans <stdlib.h> partout ailleurs.

BOGUES

       La version du standard POSIX.1-2001 de cette fonctions est erronee  par
       construction  car  elle ne permet pas de connaitre la taille necessaire
       pour le tampon de sortie resolved_path. D'apres POSIX.1-2001, un tampon
       de  taille  PATH_MAX suffit, mais PATH_MAX n'est pas necessairement une
       constante definie et peut etre  obtenue  avec  pathconf(3).  En  outre,
       interroger  pathconf(3)  n'aide  pas  vraiment,  car  d'une  part POSIX
       previent que les resultats de  pathconf(3)  peuvent  etre  immenses  et
       inappropries  pour  allouer  de  la memoire et d'autre part pathconf(3)
       peut renvoyer -1 indiquant que PATH_MAX est illimite. La fonctionnalite
       resolved_path == NULL,  non standard dans POSIX.1-2008, permet d'eviter
       ces problemes.

       Les implementations dans les libc4 et libc5 contenaient un  debordement
       de tampon (corrige dans la libc-5.4.13). Ainsi, les programmes Set-UID,
       comme mount(8), ont besoin d'une version privee 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.27 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue a l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone       au       sein        du        projet        perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/> (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).   Nicolas
       Francois et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez   signaler   toute   erreur   de   traduction  en  ecrivant  a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

                               20 septembre 2010                   REALPATH(3)