CHDIR(2) Linux Programmer's Manual CHDIR(2)
NAME
chdir, fchdir - change working directory
SYNOPSIS
#include <unistd.h>
int chdir(const char *path);
int fchdir(int fd);
DESCRIPTION
chdir changes the current directory to that specified in(1,8) path.
fchdir is identical to chdir; the only difference is that the directory
is given as an open(2,3,n) file(1,n) descriptor.
RETURN VALUE
On success, zero is returned. On error(8,n), -1 is returned, and errno is
set(7,n,1 builtins) appropriately.
ERRORS
Depending on the file(1,n) system, other errors can be returned. The more
general errors for chdir are listed below:
EACCES Search permission is denied for one of the directories in(1,8) the
path prefix of path. (See also path_resolution(2).)
EFAULT path points outside your accessible address space.
EIO An I/O error(8,n) occurred.
ELOOP Too many symbolic links were encountered in(1,8) resolving path.
ENAMETOOLONG
path is too long.
ENOENT The file(1,n) does not exist.
ENOMEM Insufficient kernel memory was available.
ENOTDIR
A component of path is not a directory.
The general errors for fchdir are listed below:
EACCES Search permission was denied on the directory open(2,3,n) on fd.
EBADF fd is not a valid file(1,n) descriptor.
NOTES
The prototype for fchdir is only available if(3,n) _BSD_SOURCE is defined
(either explicitly, or implicitly, by not defining _POSIX_SOURCE or
compiling with the -ansi flag).
CONFORMING TO
The chdir call is compatible with SVr4, SVID, POSIX, X/OPEN, 4.4BSD.
SVr4 documents additional EINTR, ENOLINK, and EMULTIHOP error(8,n) condi-
tions but has no ENOMEM. POSIX.1 does not have ENOMEM or ELOOP error(8,n)
conditions. X/OPEN does not have EFAULT, ENOMEM or EIO error(8,n) condi-
tions.
The fchdir call is compatible with SVr4, 4.4BSD and X/OPEN. SVr4 docu-
ments additional EIO, EINTR, and ENOLINK error(8,n) conditions. X/OPEN doc-
uments additional EINTR and EIO error(8,n) conditions.
SEE ALSO
chroot(1,2)(2), path_resolution(2), getcwd(3)
Linux 2.6.7 2004-06-23 CHDIR(2)