Updated: 2022/Sep/29
Please read Privacy Policy. It's for your privacy.
CHDIR(2)                      System Calls Manual                     CHDIR(2)
NAME
     chdir, fchdir - change current working directory
LIBRARY
     Standard C Library (libc, -lc)
SYNOPSIS
     #include <unistd.h>
     int
     chdir(const char *path);
     int
     fchdir(int fd);
DESCRIPTION
     The path argument points to the pathname of a directory.  The chdir()
     function causes the named directory to become the current working
     directory, that is, the starting point for path searches of pathnames not
     beginning with a slash, `/'.
     The fchdir() function causes the directory referenced by fd to become the
     current working directory, the starting point for path searches of
     pathnames not beginning with a slash, `/'.
     In order for a directory to become the current directory, a process must
     have execute (search) access to the directory.
RETURN VALUES
     Upon successful completion, a value of 0 is returned.  Otherwise, a value
     of -1 is returned and errno is set to indicate the error.
ERRORS
     chdir() 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
                        translating the pathname.
     [ENAMETOOLONG]     A component of a pathname exceeded {NAME_MAX}
                        characters, or an entire path name exceeded {PATH_MAX}
                        characters.
     [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
                        referenced by the file descriptor.
     [EBADF]            The argument fd is not a valid file descriptor.
     [ENOTDIR]          The file descriptor does not reference a directory.
     [EPERM]            The argument fd references a directory which is not at
                        or below the current process's root directory.
SEE ALSO
     chroot(2), getcwd(3)
STANDARDS
     The chdir() function conforms to IEEE Std 1003.1-1990 ("POSIX.1").
HISTORY
     A chdir() function call appeared in Version 1 AT&T UNIX.  The fchdir()
     function call appeared in 4.2BSD.
NetBSD 10.99                   September 1, 2019                  NetBSD 10.99