Votre IP: 38.107.179.243 
  
 
Google
 
Accueil e-mail Linux
Linux
Perl
Perl
C
Langage C
Dico
Dictionnaire
Biblio liens
Bibliothèque de liens
Index articles
Index articles
 

Date création : 27-03-2008 20:23:44

Linux  Vous êtes dans : GNU/Linux Astuces / Pages man [Section3 - Sous-fonctions]


GETCWD

 

Index

  1. NOM
  2. SYNOPSIS
  3. DESCRIPTION
  4. VALEUR RENVOYÉE
  5. ERREURS
  6. NOTES
  7. CONFORMITÉ À
  8. VOIR AUSSI
  9. TRADUCTION

 

NOMIndex

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

SYNOPSISIndex

#include <unistd.h>

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

DESCRIPTIONIndex

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 une extension du standard POSIX.1-2001, la version Linux (libc4, libc5, glibc) de getcwd() alloue le tampon dynamiquement avec malloc(), si buf est NULL lors de l'appel. Dans ce cas, le tampon alloué a la longueur size à moins que size soit égal à zéro, auquel cas buf est alloué avec la taille nécessaire. Il est possible (et même fortement conseillé) de libérer le tampon 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 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(), 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écurité, l'utilisation de getwd() est déconseillée.  

VALEUR RENVOYÉEIndex

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.  

ERREURSIndex

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.
 

NOTESIndex

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.  

CONFORMITÉ ÀIndex

POSIX.1-2001.  

VOIR AUSSIIndex

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

TRADUCTIONIndex

Cette page de manuel a été traduite et mise à jour par Christophe Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par Alain Portal <aportal AT univ-montp2 DOT fr> jusqu'en 2006.
La traduction de cette page de manuel est basée sur les traductions disponibles sur http://manpagesfr.free.fr/, mais est gérée par l'équipe francophone de traduction de Debian au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C <section> <page_de_man> ».


Création : octobre 2007  © Tous droits réservés 2007 linux-perl-c
Valid HTML 4.01 TransitionalValid CSS