CHDIR

Section: Manuel du programmeur Linux (2)
Updated: 18 juillet 2003
Index


NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
NOTES
CONFORMITÉ
VOIR AUSSI
TRADUCTION

NOM

chdir, fchdir - Changer le répertoire courant.

SYNOPSIS

#include <unistd.h>
int chdir(const char *path);
int fchdir(int fd);

DESCRIPTION

chdir remplace le répertoire courant 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.

VALEUR RENVOYÉE

chdir et fchdir renvoient 0 s'ils réussissent, ou -1 s'ils échouent, auquel cas errno contient le code d'erreur.

ERREURS

Suivant le type de système de fichiers, plusieurs erreurs peuvent être renvoyées, les plus courantes pour chdir sont les suivantes :
EFAULT
path pointe en dehors de l'espace d'adressage accessible.
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 n'est pas un répertoire.
EACCES
L'accès n'est pas autorisé sur un élément du chemin.
ELOOP
path contient des références circulaires (à travers un lien symbolique).
EIO
Une erreur d'entrée/sortie s'est produite.

Les erreurs courantes pour fchdir sont :
EBADF
fd n'est pas un descripteur de fichier valide.
EACCES
Le répertoire ouvert sur fd n'autorise pas le parcours.

NOTES

Le prototype de fchdir n'est disponible que si _BSD_SOURCE est défini (soit explicitement, soit implicitement en ne définissant pas _POSIX_SOURCE ou en compilant avec l'attribut -ansi).

CONFORMITÉ

L'appel système chdir est compatible avec SVr4, SVID, POSIX, X/OPEN, et 4.4BSD. SVr4 décrit les conditions d'erreur supplémentaires EINTR, ENOLINK, et EMULTIHOP mais n'a pas d'erreur ENOMEM. POSIX.1 ne contient pas d'erreur ENOMEM ni ELOOP. X/OPEN ne décrit pas les erreurs EFAULT, ENOMEM ni EIO.
L'appel système fchdir est compatible avec SVr4, 4.4BSD et X/OPEN. SVr4 ajoute les conditions d'erreur EIO, EINTR, et ENOLINK. X/OPEN ajoute EINTR et EIO.

VOIR AUSSI

getcwd(3), chroot(2).

TRADUCTION

Christophe Blaess, 1996-2003.