realpath

REALPATH(3)                Manuel du programmeur Linux               REALPATH(3)



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 (consulter
   feature_test_macros(7)) :

       realpath() :
           _XOPEN_SOURCE >= 500
               || /* Glibc since 2.19: */ _DEFAULT_SOURCE
               || /* Glibc versions <= 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).

       ┌───────────┬──────────────────────┬─────────┐
       │Interface  Attribut             Valeur  │
       ├───────────┼──────────────────────┼─────────┤
       │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.08 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 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>.



                                15 septembre 2017                    REALPATH(3)