1. NOM▲

chdir, fchdir - Changer le répertoire courant

2. SYNOPSIS ▲

#include <unistd.h>

int chdir(const char *path);
int fchdir(int fd);

Exigences de macros de test de fonctionnalités pour la glibc (consultez feature_test_macros(7)) :

fchdir() :
    _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
|| /* Depuis la glibc 2.12 : */ _POSIX_C_SOURCE >= 200809L

3. DESCRIPTION ▲

chdir() remplace le répertoire de travail courant du processus appelant par celui indiqué dans le chemin path.

fchdir() est identique à chdir(), sauf que le répertoire cible est fourni sous forme de descripteur de fichier.

4. VALEUR RENVOYÉE ▲

S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et remplit errno en conséquence.

5. ERREURS ▲

Suivant le type de système de fichiers, plusieurs erreurs peuvent être renvoyées, les plus courantes pour chdir() sont les suivantes :

  • EACCES
        L'accès n'est pas autorisé sur un élément du chemin path. (Consultez aussi path_resolution(7).)
  • EFAULT
        path pointe en dehors de l'espace d'adressage accessible.
  • EIO
        Une erreur d'entrée-sortie s'est produite.
  • ELOOP
        path contient une référence circulaire (à travers un lien symbolique)
  • ENAMETOOLONG
        path est trop long.
  • ENOENT
        Le fichier n'existe pas.
  • ENOMEM
        Pas assez de mémoire pour le noyau.
  • ENOTDIR
        Un élément du chemin d'accès path n'est pas un répertoire.

Les erreurs courantes pour fchdir() sont :

  • EACCES
        Le répertoire ouvert sur fd n'autorise pas le parcours.
  • EBADF
        fd n'est pas un descripteur de fichier valable.

6. CONFORMITÉ ▲

SVr4, BSD 4.4, POSIX.1-2001.

7. NOTES ▲

Le répertoire de travail est le point de départ pour l'interprétation des chemins relatifs (qui ne commencent pas par « / »). Un processus fils créé avec fork(2) hérite du répertoire de travail courant de son père. Le répertoire de travail courant n'est pas modifié par un execve(2).

8. VOIR AUSSI ▲

9. COLOPHON ▲

Cette page fait partie de la publication 3.52 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

10. TRADUCTION ▲

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».