realpath(3) Library Functions Manual realpath(3) NOM realpath - Renvoyer le chemin d'acces absolu BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include #include char *realpath(const char *restrict chemin, char *restrict chemin_resolu); Exigences de macros de test de fonctionnalites pour la glibc (consulter feature_test_macros(7)) : realpath() : _XOPEN_SOURCE >= 500 || /* glibc >= 2.19 : */ _DEFAULT_SOURCE || /* glibc <= 2.19 : */ _BSD_SOURCE DESCRIPTION realpath developpe tous les liens symboliques, et resout les references a << /./ >>, << /../ >> ainsi que les caracteres w / x supplementaires dans la chaine, terminee par un caractere NULL, pointee par chemin pour produire une forme canonique du chemin absolu. Le chemin resultant est stocke sous la forme d'une chaine terminee par un caractere NULL pouvant contenir jusqu'a PATH_MAX octets, dans le tampon pointe par chemin_resolu. Le chemin resultant ne traversera plus de liens symboliques et ne contiendra plus d'elements << /./ >> ou << /../ >>. Si chemin_resolu est NULL, alors realpath() utilise malloc(3) pour allouer un tampon allant jusqu'a PATH_MAX octets pour contenir le chemin trouve, et retourne un pointeur sur ce tampon. L'appelant doit liberer ce tampon avec free(3). VALEUR RENVOYEE S'il n'y a pas d'erreur, realpath() renvoie un pointeur sur chemin_resolu. Sinon elle renvoie NULL, le contenu de chemin_rseolu 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 chemin est NULL (avant la glibc 2.3, cette erreur est aussi renvoyee si chemin_resolu est NULL). EIO Une erreur d'entree-sortie s'est produite durant la lecture du 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. ENOMEM Plus assez de memoire. ENOTDIR Un element du chemin d'acces n'est pas un repertoire. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |realpath() | Securite des threads | MT-Safe | +---------------------------------+--------------------------+---------+ VERSIONS Extensions GNU Si l'appel echoue avec EACCES ou ENOENT alors que chemin_resolu n'est pas NULL, alors le prefixe de chemin qui n'est pas lisible ou qui n'existe pas est renvoye dans chemin_resolu. NORMES POSIX.1-2008. HISTORIQUE 4.4BSD, POSIX.1-2001, Solaris. POSIX.1 indique que le comportement dans le cas ou chemin_resolu est NULL depend de l'implementation. POSIX.1-2008 specifie le comportement decrit dans cette page. Dans 4.4BSD et Solaris, la limite de longueur du chemin est MAXPATHLEN (dans ). SUSv2 conseille PATH_MAX et NAME_MAX, dans 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.) 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 chemin_resolu. 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 chemin_resolu == NULL, non standard dans POSIX.1-2008, permet d'eviter ces problemes. VOIR AUSSI realpath(1), readlink(2), canonicalize_file_name(3), getcwd(3), pathconf(3), sysconf(3) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et bubu Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.17 8 fevrier 2026 realpath(3)