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 chdir are listed below:

     EFAULT  path points outside your accessible address space.

     ENAMETOOLONG
             path is too long.

     ENOENT  The file does not exist.

     ENOMEM  Insufficient kernel memory was available.

     ENOTDIR A component of path is not a directory.

     EACCES  Search permission is denied on a component of path.

     ELOOP   Too many symbolic links were encountered in  resolv-
             ing path.

     EIO     An I/O error occurred.

     The general errors for fchdir are listed below:

     EBADF   fd is not a valid file  descriptor.   EACCES  Search
             permission was denied on the directory open on fd.


CONFORMING TO

     The chdir call is compatible with SVr4, SVID, POSIX, X/OPEN,
     4.4BSD.  SVr4 documents additional EINTR, ENOLINK, and EMUL-
     TIHOP error conditions but has no ENOMEM.  POSIX.1 does  not
     have ENOMEM or ELOOP error conditions.  X/OPEN does not have
     EFAULT, ENOMEM or EIO error conditions.

     The fchdir call is compatible with SVr4, 4.4BSD and  X/OPEN.
     SVr4 documents additional EIO, EINTR, and ENOLINK error con-
     ditions.  X/OPEN documents additional EINTR  and  EIO  error
     conditions.


SEE ALSO

     getcwd(3), chroot(2)