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,
       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 conditions.  X/OPEN documents additional  EINTR  and
       EIO error conditions.


SEE ALSO

       getcwd(3), chroot(2)