Index Click this button to go to the index for this section.


chdir(2)

NAME

chdir, fchdir - Changes the current directory

SYNOPSIS

#include <unistd.h> int chdir ( const char *path ); int fchdir ( int filedes );

STANDARDS

Interfaces documented on this reference page conform to industry standards as follows: chdir(): POSIX.1, XPG4, XPG4-UNIX fchdir(): POSIX.1, XPG4-UNIX Refer to the standards(5) reference page for more information about industry standards and associated tags.

PARAMETERS

path Points to the pathname of the directory. filedes Specifies the file descriptor of the directory.

DESCRIPTION

The chdir() function changes the current directory to the directory indicated by the path parameter. The fchdir() function changes the current directory to the directory indicated by the filedes parameter. If the path parameter refers to a symbolic link, the chdir() function sets the current directory to the directory pointed to by the symbolic link. The current directory, also called the current working directory, is the starting point of searches for pathnames that do not begin with a / (slash). In order for a directory to become the current directory, the calling process must have search access to the directory.

NOTES

The current working directory is shared between all threads within the same process. Therefore, one thread using the chdir() or fchdir() functions will affect every other thread in that process.

RETURN VALUES

Upon successful completion, the chdir() function returns a value of 0 (zero). Otherwise, a value of -1 is returned and errno is set to indicate the error.

ERRORS

If the chdir() function fails, the current directory remains unchanged and errno may be set to one of the following values: [EACCES] Search access is denied for any component of the pathname. [EFAULT] The path parameter 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] The length of the path argument exceeds PATH_MAX or a pathname component is longer than NAME_MAX. [ENOENT] The named directory does not exist, or is an empty string. [ENOTDIR] A component of the path prefix is not a directory. If the fchdir() function fails, the current directory remains unchanged and errno may be set to one of the following values: [EBADF] The filedes parameter is not a valid open file descriptor. [ENOTDIR] The file descriptor does not reference a directory.

RELATED INFORMATION

Functions: chroot(2) Commands: cd(1) Standards: standards(5)