Provided by: manpages-fr_1.67.0-1_all bug

NOM

       getcwd, get_current_dir_name, getwd - Obtenir le répertoire courant.

SYNOPSIS

       #include <unistd.h>

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

DESCRIPTION

       La  fonction  getcwd()  copie le chemin d’accès absolu du répertoire de
       travail courant dans la chaîne pointée par buf,  qui  est  de  longueur
       size.

       Si  le  chemin du répertoire en cours nécessite un buffer plus long que
       size octets, la fonction  renvoie  NULL,  et  errno  contient  le  code
       d’erreur ERANGE.  Une application doit détecter cette erreur et allouer
       un buffer plus grand si besoin est.

       Si buf est NULL, le comportement de getcwd() est indéfini.

       Comme extension du standard POSIX.1, la version  Linux  (LibC4,  LibC5,
       GlibC)  de  getcwd()  alloue  le  buffer  dynamiquement,  en  utilisant
       malloc(), si buf est NULL lors de l’appel.  Alors, le buffer  alloué  a
       la  longueur  size à moins que size soit égal à zéro, dans ce cas buf a
       la taille nécessaire. Il est possible (et même fortement conseillé)  de
       libérer le buffer avec free() lorsqu’il a été obtenu ainsi.

       get_current_dir_name,  qui  ne possède un prototype que si la constante
       _GNU_SOURCE est définie, allouera avec malloc(3) une chaîne suffisament
       grande   pour   contenir   le   nom   du  répertoire.  Si  la  variable
       d’environnement PWD est configurée,  et  correcte,  cette  valeur  sera
       renvoyée.

       getwd, qui ne possède un prototype que si les constantes _BSD_SOURCE ou
       _XOPEN_SOURCE_EXTENDED  sont  définies,  n’allouera   aucune   mémoire.
       L’argument buf doit être un pointeur sur une chaîne comportant au moins
       PATH_MAX octets.  getwd ne renverra que les PATH_MAX premiers octets du
       nom  réel.  Notez que PATH_MAX n’est pas nécessairement une constante à
       la compilation. Elle peut dépendre du système de fichiers,  voire  être
       illimitée.   Pour  des  raisons  de  portabilité  et  de  sécuriré,  on
       déconseille l’utilisation de getwd.

VALEUR RENVOYÉE

       NULL en cas d’échec, avec errno contenant le code d’erreur. En  cas  de
       réussite  buf  est renvoyé. Le contenu de la chaîne pointée par buf est
       indéfini en cas d’erreur.

ERREURS

       EACCES Impossible de lire  ou  de  parcourir  un  composant  du  chemin
              d’accès.

       EFAULT buf pointe sur une adresse illégale.

       EINVAL L’argument size vaut zéro et buf n’est pas un pointeur NULL.

       ENOENT Le répertoire en cours a été supprimé.

       ERANGE L’argument   size   est  inférieur  à  la  longueur  du  nom  du
              répertoire.  Allouez un buffer plus grand et ré-essayez.

NOTES

       Sous Linux, la  fonction  getcwd()  est  un  appel-système  (depuis  le
       2.1.92).    Sur   des   systèmes   plus   anciens,  elle  interrogerait
       /proc/self/cwd.  Si l’appel-système et le système de fichiers proc sont
       absents,  une  implémentation  générique  est  utilisée.  Dans  ce  cas
       seulement la fonction peut renvoyer EACCES sous Linux.

       Ces fonctions sont souvent  utilisées  pour  sauver  le  répertoire  de
       travail  afin d’y revenir plus tard. Ouvrir le répertoire courant (".")
       et appeler fchdir(2) pour y revenir est habituellement une  alternative
       plus rapide et plus fiable (surtout sur d’autres systèmes que Linux) si
       l’on dispose de suffisament de descripteurs de fichiers.

CONFORMITÉ

       POSIX.1

VOIR AUSSI

       chdir(2), fchdir(2), open(2), unlink(2), free(3), malloc(3)

TRADUCTION

       Christophe Blaess, 1996-2003.