chdir(2)chdir(2)NAME
chdir, fchdir - Change 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 stan‐
dards as follows:
chdir(): XSH4.0, XSH4.2, XSH5.0
fchdir(): XSH4.2, XSH5.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
PARAMETERS
Points to the pathname of the directory. Specifies the file descriptor
of the directory.
DESCRIPTION
The chdir() function changes the current directory to the directory
indicated by the path parameter. If the path parameter refers to a sym‐
bolic link, the chdir() function sets the current directory to the
directory pointed to by the symbolic link.
The fchdir() function has the same effect as chdir() except that the
new directory is specified by file descriptor (filedes) rather than
pathname.
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() func‐
tion 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 indi‐
cate the error.
ERRORS
If the chdir() function fails, the current directory remains unchanged
and errno may be set to one of the following values: Search access is
denied for any component of the pathname. The path parameter points
outside the process's allocated address space. An I/O error occurred
while reading from or writing to the file system. Too many symbolic
links were encountered in translating the pathname. The length of the
path argument exceeds PATH_MAX or a pathname component is longer than
NAME_MAX.
Pathname resolution of a symbolic link produced an intermediate
result whose length exceeds PATH_MAX. The named directory does
not exist, or is an empty string. A component of the path pre‐
fix 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: Search access is
denied for any component of the pathname. The filedes parameter is not
a valid open file descriptor. The file descriptor does not reference a
directory.
SEE ALSO
Functions: chroot(2)
Commands: cd(1)
Others: standards(5)chdir(2)