Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
getcwd, getwd, get_current_dir_name - Obtenir le repertoire courant de
travail
SYNOPSIS
#include <unistd.h>
char *getcwd(char *buf, size_t size);
char *getwd(char *buf);
char *get_current_dir_name(void);
Exigences de macros de test de fonctionnalites pour la glibc (consultez
feature_test_macros(7)) :
get_current_dir_name() :
_GNU_SOURCE
getwd() :
Depuis la glibc 2.12 :
_BSD_SOURCE ||
(_XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&
!(_POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700)
Avant la glibc 2.12 : _BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
DESCRIPTION
Ces fonctions renvoient une chaine terminee par une octet nul contenant
un chemin absolu correspondant au repertoire de travail actuel du
processus appelant. Le chemin est renvoye comme resultat de la fonction
et par le parametre buf, s'il est present.
La fonction getcwd() copie le chemin d'acces absolu du repertoire de
travail courant dans la chaine pointee par buf, qui est de longueur
size.
Si la taille du chemin absolu du repertoire de travail en cours,
caractere nul de fin compris, depasse size octets, la fonction renvoie
NULL et errno contient le code d'erreur ERANGE. Une application doit
detecter cette erreur et allouer un tampon plus grand si besoin est.
Comme une extension du standard POSIX.1-2001, la version Linux (libc4,
libc5, glibc) de getcwd() alloue le tampon dynamiquement avec
malloc(3), si buf est NULL. Dans ce cas, le tampon alloue a la longueur
size a moins que size soit egal a zero, auquel cas buf est alloue avec
la taille necessaire. L'appelant doit liberer avec free(3) le tampon
renvoye.
get_current_dir_name() allouera avec malloc(3) une chaine suffisamment
grande pour contenir le nom du chemin absolu du repertoire de travail
courant. Si la variable d'environnement PWD est configuree, et
correcte, cette valeur sera renvoyee. L'appelant doit liberer avec
free(3) le tampon renvoye.
getwd() n'allouera aucune memoire (avec malloc(3)). Le parametre buf
doit etre un pointeur sur une chaine comportant au moins PATH_MAX
octets. Si la longueur du chemin absolu du repertoire de travail
actuel, caractere nul de fin compris, depasse PATH_MAX octets, NULL est
renvoye et errno prend la valeur ENAMETOOLONG. Notez que sur certains
systeme, PATH_MAX peut ne pas etre une constante connue a la
compilation ; de plus, sa valeur peut dependre du systeme de fichiers,
voire etre illimitee, consultez pathconf(3). Pour des raisons de
portabilite et de securite, l'utilisation de getwd() est deconseillee.
VALEUR RENVOY'EE
En cas de succes, ces fonctions renvoient un pointeur vers une chaine
contenant le chemin du repertoire de travail en courant. Dans le cas de
getcwd() et getwd() il s'agit de la meme valeur que buf.
En cas d'echec, ces fonctions renvoient NULL, et remplissent errno avec
le code d'erreur. Le contenu de la chaine pointee par buf est indefini
en cas d'erreur.
ERREURS
EACCES Impossible de lire ou de parcourir un composant du chemin
d'acces.
EFAULT buf pointe sur une adresse illegale.
EINVAL L'argument size vaut zero et buf n'est pas un pointeur NULL.
EINVAL getwd() : buf est NULL.
ENAMETOOLONG
getwd() : La taille de la chaine, terminee par un octet nul, du
chemin absolu depasse PATH_MAX octets.
ENOENT Le repertoire en cours a ete supprime.
ERANGE Le parametre size est inferieur a la longueur du nom du chemin
absolu du repertoire de travail, caractere nul de fin compris.
Allouez un tampon plus grand et reessayez.
CONFORMIT'E
getcwd() se conforme a POSIX.1-2001. Notez cependant que POSIX.1-2001
laisse le comportement de getcwd() non specifie si buf est NULL.
getwd() est present dans POSIX.1-2001, mais marquee << LEGACY >>.
POSIX.1-2008 supprime la specification de getwd() et POSIX.1-2001 ne
definit aucune erreur pour getwd(). Utilisez getcwd() a la place.
get_current_dir_name() est une extension GNU.
NOTES
Sous Linux, la fonction getcwd() est un appel systeme (depuis le
2.1.92). Sur des systemes plus anciens, elle interrogerait
/proc/self/cwd. Si l'appel systeme et le systeme de fichiers proc sont
absents, une implementation generique est utilisee. Dans ce cas
seulement la fonction peut renvoyer EACCES sous Linux.
Ces fonctions sont souvent utilisees pour sauver le repertoire de
travail afin d'y revenir plus tard. Ouvrir le repertoire courant
(<< . >>) et appeler fchdir(2) pour y revenir est habituellement une
alternative plus rapide et plus fiable (surtout sur d'autres systemes
que Linux) si l'on dispose de suffisamment de descripteurs de fichier.
VOIR AUSSI
chdir(2), fchdir(2), open(2), unlink(2), free(3), malloc(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). Florentin
Duneau 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> >>.