text: chdir(2) BSD System Calls Manual chdir(2)
  NAME
  chdir, fchdir -- change current working directory
  SYNOPSIS
  #include <unistd.h> int chdir(const char *path); int fchdir(int fildes);
  DESCRIPTION
  Theildes
  The Chdir() system call will fail and the current working directory will be unchanged if one or more of the following are true: [EACCES] Search permission is denied for any component of the path name. [EFAULT] Path points outside the process's allocated address space. [EIO] An I/O error occurred while reading from or writing to the file system. [ELOOP] Too many symbolic links were encountered in translat- ing the pathname. This is taken to be indicative of a looping symbolic link. [ENAMETOOLONG] A component of a pathname exceeded {NAME_MAX} charac- ters, or an entire path name exceeded {PATH_MAX} char- acters. [ENOENT] The named directory does not exist. [ENOTDIR] A component of the path prefix is not a directory. Fchdir() will fail and the current working directory will be unchanged if one or more of the following are true: [EACCES] Search permission is denied for the directory refer- enced by the file descriptor. [EBADF] The argument fildes is not a valid file descriptor. [EINTR] Fchdir() was interrupted by a signal. [EIO] An I/O error occurred while reading from or writing to the file system. [ENOTDIR] The file descriptor does not reference a directory.
  SEE ALSO
  chroot(2)
  STANDARDS
  The chdir() is expected to conform to IEEE Std 1003.1-1988 (``POSIX.1'').
  HISTORY
  The fchdir() function call appeared in 4.2BSD. 4th Berkeley Distribution December 11, 1993 4th Berkeley Distribution
  Mac OS X 10.9.1 - Generated Sun Jan 5 19:33:11 CST 2014