.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 2000 by Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Created, 14 Dec 2000 by Michael Kerrisk .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH basename 3 "20 juillet 2023" "Pages du manuel de Linux 6.05.01" .SH NOM basename, dirname \- Analyser les composants d'un chemin d'accès .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP) .SH SYNOPSIS .nf \fB#include \fP .PP \fBchar *dirname(char *\fP\fIchemin\fP\fB);\fP \fBchar *basename(char *\fP\fIchemin\fP\fB);\fP .fi .SH DESCRIPTION Attention\ : il existe deux fonctions \fBbasename\fP() différentes\ ; voir ci\-dessous. .PP Les fonctions \fBdirname\fP() et \fBbasename\fP() décomposent un chemin d'accès, représenté sous la forme d'une chaîne terminée par un caractère NULL, en ses composants répertoire et nom de fichier. En général, \fBdirname\fP() renvoie la chaîne s'étendant jusqu'au dernier «\ /\ », sans l'inclure, et \fBbasename\fP() renvoie la partie se trouvant après le dernier «\ /\ ». Les caractères «\ /\ » en fin de chemin n'en font pas partie. .PP Si \fIchemin\fP ne contient pas de barre oblique, \fBdirname\fP() renvoie la chaîne «\ .\ » et \fBbasename\fP() renvoie une copie de la chaîne \fIchemin\fP. Si \fIchemin\fP correspond à la chaîne «\ /\ », alors \fBdirname\fP() et \fBbasename\fP() renvoient toutes deux la chaîne «\ /\ ». Si \fIchemin\fP est un pointeur NULL ou pointe vers une chaîne vide, alors \fBdirname\fP() et \fBbasename\fP() renvoient toutes deux la chaîne «\ .\ ». .PP En mettant bout à bout la chaîne renvoyée par \fBdirname\fP(), un «\ /\ » et la chaîne renvoyée par \fBbasename\fP(), on obtient un chemin d'accès complet. .PP \fBdirname\fP() et \fBbasename\fP() peuvent toutes deux modifier le contenu de \fIchemin\fP\ ; il est donc souhaitable de passer une copie de celui\-ci lors d'un appel à l'une de ces fonctions. .PP Ces fonctions peuvent renvoyer des pointeurs vers de la mémoire allouée statiquement qui peut être écrasée par des appels ultérieurs. Elles peuvent aussi renvoyer un pointeur vers une partie de \fIchemin\fP, de façon à ce que la chaîne référencée par \fIchemin\fP ne puisse être modifiée ou libérée que lorsque le pointeur renvoyé par la fonction ne sera plus nécessaire. .PP La liste d'exemples suivante (prise dans SUSv2) montre les chaînes renvoyées par \fBdirname\fP() et \fBbasename\fP() pour différents chemins d'accès\ : .RS .TS lb lb lb l l l l. chemin dirname basename /usr/lib /usr lib /usr/ / usr usr . usr / / / \&. . . \&.. . .. .TE .RE .SH "VALEUR RENVOYÉE" Les fonctions \fBdirname\fP() et \fBbasename\fP() renvoient des pointeurs sur des chaînes terminées par un caractère NULL (ne pas passer ces pointeurs à \fBfree\fP(3)). .SH ATTRIBUTS Pour une explication des termes utilisés dans cette section, consulter \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interface Attribut Valeur T{ .na .nh \fBbasename\fP(), \fBdirname\fP() T} Sécurité des threads MT\-Safe .TE .sp 1 .SH VERSIONS Il existe deux versions différentes de \fBbasename\fP()\ : la version POSIX décrite précédemment et la version GNU que l'on utilise avec .PP .in +4n .EX \fB #define _GNU_SOURCE\fP /* Consultez feature_test_macros(7) */ \fB#include \fP .EE .in .PP La version GNU ne modifie jamais son argument et renvoie une chaîne vide lorsque \fIchemin\fP se termine par une barre oblique «\ /\ », et en particulier aussi lorsqu'il vaut «\ /\ ». Il n'y a pas de version GNU de \fBdirname\fP(). .PP Avec la glibc, on utilise la version POSIX de \fBbasename\fP() lorsque \fI\fP est inclus et la version GNU dans le cas contraire. .SH STANDARDS POSIX.1\-2008. .SH HISTORIQUE POSIX.1\-2001. .SH BOGUES Dans l'implémentation de la glibc, les versions POSIX de ces fonctions modifient l'argument \fIchemin\fP et génèrent une erreur de segmentation lorsqu'elles sont appelées avec une chaîne statique comme «\ /usr/\ ». .PP Avant la glibc\ 2.2.1, la version de la glibc de la fonction \fBdirname\fP() ne gérait pas correctement les chemins se terminant par un caractère «\ /\ » et générait une erreur de segmentation lorsqu'on lui passait un pointeur NULL comme argument. .SH EXEMPLES L'extrait de code suivant montre l'utilisation de \fBbasename\fP() et \fBdirname\fP()\ : .in +4n .EX char *copie_rep, *copie_base, *nom_base, *nom_rep; char *chemin = "/etc/passwd"; \& copie_rep = strdup(chemin); copie_base = strdup(chemin); nom_rep = dirname(copie_rep); nom_base = basename(copie_base); printf("Nom répertoire = %s, Nom base = %s\en", nom_rep, nom_base); .EE .in .SH "VOIR AUSSI" \fBbasename\fP(1), \fBdirname\fP(1) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Lucien Gentis . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .