chdir, fchdir – linux man page

August 27th, 2009 | Tags: ,

chdir, fchdir – change working directory

USAGE
       #include <unistd.h>

       int chdir(const char *path);
       int fchdir(int fd);

DESCRIPTION
       chdir()  changes  the  current  working  directory to that specified in
       path.

       fchdir() is identical to chdir();  the  only  difference  is  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:

       EACCES Search  permission  is  denied for one of the directories in the
              path prefix of path.  (See also path_resolution(2).)

       EFAULT path points outside your accessible address space.

       EIO    An I/O error occurred.

       ELOOP  Too many symbolic links were encountered in resolving path.

       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.

       The general errors for fchdir() are listed below:

       EACCES Search permission was denied on the directory open on fd.

       EBADF  fd is not a valid file descriptor.

NOTES
       A child process created via fork(2) inherits its parent’s current work-
       ing  directory.   The  current  working  directory is left unchanged by
       execve(2).

       The prototype for fchdir() is only available if _BSD_SOURCE is defined,
       or _XOPEN_SOURCE is defined with the value 500.

CONFORMING TO
       SVr4, 4.4BSD, POSIX.1-2001.

SEE ALSO
       chroot(2), getcwd(3)

Comments are closed.