.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Modified Wed Jul 21 22:35:42 1993 by Rik Faith (faith@cs.unc.edu) .\" Modified 18 Mar 1996 by Martin Schulze (joey@infodrom.north.de): .\" Corrected description of getwd(). .\" Modified Sat Aug 21 12:32:12 MET 1999 by aeb - applied fix by aj .\" Modified Mon Dec 11 13:32:51 MET 2000 by aeb .\" Modified Thu Apr 22 03:49:15 CEST 2002 by Roger Luethi .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getcwd 3 "20 juillet 2023" "Pages du manuel de Linux 6.05.01" .SH NOM getcwd, getwd, get_current_dir_name \- Obtenir le répertoire de travail actuel .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP) .SH SYNOPSIS .nf \fB#include \fP .PP \fBchar *getcwd(char \fP\fIbuf\fP\fB[.\fP\fIsize\fP\fB], size_t \fP\fIsize\fP\fB);\fP \fBchar *get_current_dir_name(void);\fP .PP \fB[[obsolète]] char *getwd(char \fP\fIbuf\fP\fB[PATH_MAX]);\fP .fi .PP .RS -4 Exigences de macros de test de fonctionnalités pour la glibc (consulter \fBfeature_test_macros\fP(7))\ : .RE .PP \fBget_current_dir_name\fP()\ : .nf _GNU_SOURCE .fi .PP \fBgetwd\fP()\ : .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED Depuis la glibc 2.12: (_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200809L) || /* glibc >= 2.19 : */ _DEFAULT_SOURCE || /* glibc <= 2.19 : */ _BSD_SOURCE Avant la glibc 2.12 : _BSD_SOURCE || _XOPEN_SOURCE >= 500 .fi .SH DESCRIPTION Ces fonctions renvoient une chaîne terminée par un octet NULL contenant un chemin absolu correspondant au répertoire de travail actuel du processus appelant. Le chemin est renvoyé comme résultat de la fonction et par le paramètre \fIbuf\fP, s'il est présent. .PP La fonction \fBgetcwd\fP() copie le chemin d'accès absolu du répertoire de travail courant dans la chaîne pointée par \fIbuf\fP, qui est de longueur \fIsize\fP. .PP Si la taille du chemin absolu du répertoire de travail en cours, octet NULL de fin compris, dépasse \fIsize\fP octets, la fonction renvoie NULL et \fIerrno\fP contient le code d'erreur \fBERANGE\fP. Une application doit détecter cette erreur et allouer un tampon plus grand si besoin est. .PP En tant qu'extension de la norme POSIX.1\-2001, la version de la glibc de \fBgetcwd\fP() alloue le tampon dynamiquement avec \fBmalloc\fP(3) si \fIbuf\fP est NULL. Dans ce cas, le tampon alloué a une taille de \fIsize\fP sauf si \fIsize\fP vaut zéro, auquel cas \fIbuf\fP est alloué avec la taille nécessaire. L'appelant doit libérer avec \fBfree\fP(3) le tampon renvoyé. .PP \fBget_current_dir_name\fP() allouera avec \fBmalloc\fP(3) une chaîne suffisamment grande pour contenir le nom du chemin absolu du répertoire de travail courant. Si la variable d'environnement \fBPWD\fP est configurée, et correcte, cette valeur sera renvoyée. L'appelant doit libérer avec \fBfree\fP(3) le tampon renvoyé. .PP \fBgetwd\fP() n'allouera aucune mémoire (avec \fBmalloc\fP(3)). Le paramètre \fIbuf\fP doit être un pointeur sur une chaîne comportant au moins \fBPATH_MAX\fP octets. Si la longueur du chemin absolu du répertoire de travail actuel, caractère NULL de fin compris, dépasse \fBPATH_MAX\fP octets, NULL est renvoyé et \fIerrno\fP prend la valeur \fBENAMETOOLONG\fP. Notez que sur certains systèmes, \fBPATH_MAX\fP peut ne pas être une constante connue à la compilation\ ; de plus, sa valeur peut dépendre du système de fichiers, consultez \fBpathconf\fP(3). Pour des raisons de portabilité et de sécurité, l'utilisation de \fBgetwd\fP() est déconseillée. .SH "VALEUR RENVOYÉE" En cas de succès, ces fonctions renvoient un pointeur vers une chaîne contenant le chemin du répertoire de travail actuel. Dans le cas de \fBgetcwd\fP() et \fBgetwd\fP() il s'agit de la même valeur que \fIbuf\fP. .PP En cas d'échec, ces fonctions renvoient NULL, et remplissent \fIerrno\fP avec le code d'erreur. Le contenu de la chaîne pointée par \fIbuf\fP est indéfini en cas d'erreur. .SH ERREURS .TP \fBEACCES\fP Impossible de lire ou de parcourir un composant du chemin d'accès. .TP \fBEFAULT\fP \fIbuf\fP pointe sur une adresse illégale. .TP \fBEINVAL\fP L'argument \fIsize\fP vaut zéro et \fIbuf\fP n'est pas un pointeur NULL. .TP \fBEINVAL\fP \fBgetwd\fP()\ : \fIbuf\fP est NULL. .TP \fBENAMETOOLONG\fP \fBgetwd\fP()\ : La taille de la chaîne, terminée par un octet NULL, du chemin absolu dépasse \fBPATH_MAX\fP octets. .TP \fBENOENT\fP Le répertoire en cours a été supprimé. .TP \fBENOMEM\fP Plus assez de mémoire. .TP \fBERANGE\fP Le paramètre \fIsize\fP est inférieur à la longueur du nom du chemin absolu du répertoire de travail, caractère NULL de fin compris. Allouez un tampon plus grand et réessayez. .SH ATTRIBUTS Pour une explication des termes utilisés dans cette section, consulter \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interface Attribut Valeur T{ .na .nh \fBgetcwd\fP(), \fBgetwd\fP() T} Sécurité des threads MT\-Safe T{ .na .nh \fBget_current_dir_name\fP() T} Sécurité des threads MT\-Safe env .TE .sp 1 .SH VERSIONS POSIX.1\-2001 ne spécifie pas le comportement de \fBgetcwd\fP() si \fIbuf\fP est NULL. .PP POSIX.1\-2001 ne définit aucune erreur pour \fBgetwd\fP(). .SH VERSIONS .SS "Différences entre bibliothèque C et noyau" .\" commit 3272c544da48f8915a0e34189182aed029bd0f2b Sur Linux, le noyau fournit un appel système \fBgetcwd\fP() que les fonctions décrites dans cette page s'efforceront d'utiliser. L'appel système prend les mêmes paramètres que les fonctions de la bibliothèque du même nom, mais il se limite à envoyer tout au plus \fBPATH_MAX\fP octets (avant Linux\ 3.12, la limite de taille du chemin renvoyé était celle de la page du système. Sur de nombreuses architectures, \fBPATH_MAX\fP et la taille de la page du système valent 4096\ octets, mais certaines architectures ont une page plus grande). Si la taille du chemin du répertoire de travail actuel dépasse cette limite, l'appel système échoue avec l'erreur \fBENAMETOOLONG\fP. Dans ce cas, les fonctions de la bibliothèque se rabattent sur une autre implémentation (plus lente) qui renvoie tout le chemin. .PP .\" commit 8df9d1a4142311c084ffeeacb67cd34d190eff74 Suite à un changement dans Linux\ 2.6.36, le chemin renvoyé par l'appel système \fBgetcwd\fP() sera préfixé par la chaîne «\ (unreachable)\ » si le répertoire actuel ne se situe pas sous la racine du processus actuel (par exemple parce que le processus a défini un nouveau système de fichiers racine en utilisant \fBchroot\fP(2) sans transférer son dossier actuel dans cette racine). Un tel comportement peut aussi être causé par un utilisateur non privilégié qui va du répertoire actuel vers un autre espace de noms de montage. Quand ils ont affaire à un chemin issu de sources non fiables, les appelants des fonctions décrites dans cette page doivent envisager de vérifier si le chemin renvoyé commence par «\ /\ » ou «\ (\ » pour éviter d'interpréter à tort un chemin non atteignable comme un chemin relatif. .SH STANDARDS .TP \fBgetcwd\fP() POSIX.1\-2008. .TP \fBget_current_dir_name\fP() GNU. .TP \fBgetwd\fP() Aucun. .SH HISTORIQUE .TP \fBgetcwd\fP() POSIX.1\-2001. .TP \fBgetwd\fP() POSIX.1\-2001, mais marqué comme LEGACY. Supprimé dans POSIX.1\-2008. Utilisez plutôt \fBgetcwd\fP(). .PP Sous Linux, ces fonctions utilisent l'appel système \fBgetcwd\fP() (disponible depuis Linux\ 2.1.92). Sur des systèmes plus anciens, elles interrogeaient \fI/proc/self/cwd\fP. 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 échoue en renvoyant \fBEACCES\fP sous Linux. .SH NOTES Ces fonctions sont souvent utilisées pour sauvegarder le répertoire de travail afin d'y revenir plus tard. Ouvrir le répertoire courant («\ .\ ») et appeler \fBfchdir\fP(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 fichier. .SH BOGUES Depuis une modification dans Linux\ 2.6.36, qui a ajouté «\ (unreachable)\ », \fBgetcwd\fP() de la glibc échoue pour se conformer à POSIX et renvoie un chemin relatif quand l'API a besoin d'un chemin absolu. Depuis la glibc\ 2.27, c'est corrigé\ ; l'appel \fBgetcwd\fP() à partir d'un tel endroit échouera avec \fBENOENT\fP. .SH "VOIR AUSSI" \fBpwd\fP(1), \fBchdir\fP(2), \fBfchdir\fP(2), \fBopen\fP(2), \fBunlink\fP(2), \fBfree\fP(3), \fBmalloc\fP(3) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Jean-Philippe MENGUAL . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .