getcwd   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (3)
Updated: 26 juillet 2007
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
getcwd, getwd, get_current_dir_name - Obtenir le répertoire courant  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#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 fonctionalités pour la glibc (voir feature_test_macros(7)) :

getcwd() : _BSD_SOURCE || _XOPEN_SOURCE >= 500
get_current_dir_name() : _GNU_SOURCE  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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 tampon 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 tampon plus grand si besoin est.

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

Comme extension de la norme POSIX.1-2001, la version Linux (libc4, libc5, glibc) de getcwd() alloue le tampon dynamiquement, en utilisant malloc(3), si buf est NULL lors de l'appel. Alors, le tampon 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 tampon avec free(3) lorsqu'il a été obtenu ainsi.

get_current_dir_name(), allouera avec malloc(3) une chaîne suffisamment 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() 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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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 tampon plus grand et ré-essayez.
 



CONFORMITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
getcwd() est conforme à POSIX.1-2001. getwd() est présente dans POSIX.1-2001, mais marquée comme HISTORIQUE. get_current_dir_name() est une extension GNU.  



NOTES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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 suffisamment de descripteurs de fichiers.  




VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
chdir(2), fchdir(2), open(2), unlink(2), free(3), malloc(3), feature_test_macros(7)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 26 octobre 1996 et révisée le 6 juin 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 getcwd ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
EACCESERREURS
EFAULTERREURS
EINVALERREURS
ENOENTERREURS
ERANGEERREURS



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:50:13, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional