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 path.

fchdir is identical to chdir, only that the directory is given as an open file descriptor.

RETURN VALUE
On success, zero is returned. On error, -1 is returned, and errno is set appropriately.

ERRORS
Depending on the file system, other errors can be returned. The more general errors for chmod are listed below:

EPERM
    The process does not have execute permission on the directory.

EFAULT
    path points outside your accessible address space.

ENAMETOOLONG
    path is too long.

EBADF
    The fd is not a valid file descriptor.

ENOENT
    The file does not exist.

ENOMEM
    Insufficient kernel memory was available.

ENOTDIR
    A component of the path prefix is not a directory.

EACCES
    Search permission is denied on a component of the path prefix.

ELOOP
    path contains a circular reference (i.e., via a symbolic link)

The general errors for fchmod are listed below:

EBADF
    The descriptor is not valid.

EPERM
    See above.

EROFS
    See above.

CONFORMING TO
The chdir call is compatible with SVr4, SVID, POSIX, X/OPEN, 4.4BSD. SVr4 documents additional EIO, EINTR, ENOLINK, and EMULTIHOP error conditions but has no ENOMEM or EPERM. POSIX.1 does not have EPERM, ENOMEM or ELOOP error conditions. The fchdir call is compatible with SVr4 and 4.4BSD. SVr4 documents additional EIO, EINTR, and ENOLINK erroir conditions.

SEE ALSO
getcwd(3), chroot(2)