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