GETCWD(3)

NOM
getcwd, get_current_dir_name, getwd - Obtenir le repertoire courant.

SYNOPSIS
#include <unistd.h>

char *getcwd (char *buf, size_t size);
char *get_current_working_dir_name (void);
char *getwd (char *buf);

DESCRIPTION
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 le chemin du repertoire en cours necessite un buffer plus long que size octets, la fonction renvoie NULL, et errno contient le code d'erreur ERANGE. Une application doit detecter cette erreur et allouer un buffer plus grand si besoin est.

Comme extension du standard POSIX.1, getcwd() alloue le buffer dynamiquement, en utilisant malloc(), si buf est NULL lors de l'appel. Alors, le buffer alloue a la longueur size a moins que size soit inferieure a zero, dans ce cas buf a la taille necessaire. Il est possible (et meme fortement conseille) de liberer le buffer avec free() lorsqu'il a ete obtenu ainsi. get_current_dir_name, qui ne possede un prototype que si la constante __USE_GNU est definie, allouera avec malloc(3) une chaine suffisament grande pour contenir le nom du repertoire. Si la variable d'environnement PWD est configuree, et correcte, cette valeur sera renvoyee. getwd, qui ne possede un prototype que si la constante __USE_BSD est definie, n'allouera aucune memoire. L'argument buf doit etre un pointeur sur une chaine comportant au moins PATH_MAX octets. getwd ne renverra que les PATH_MAX premiers octets du nom reel.

VALEUR RENVOYEE
NULL en cas d'echec (par exemple si le repertoire en cours n'est pas lisible), avec errno contenant le code d'erreur. En cas de reussite buf est renvoye.

CONFORME A
POSIX.1

VOIR AUSSI
chdir(2), free(3), malloc(3).