NAME
chdir, fchdir — change working directory
SYNOPSIS
#include <unistd.h>
int chdir(const char *path);
int fchdir(int fildes);
DESCRIPTION
chdir()
and
fchdir()
cause a directory pointed to by
path
or
fildes
to become the current working directory,
the starting point for path searches of path names not beginning with
/.
path
points to the path name of a directory.
fildes
is an open file descriptor of a directory.
For a directory to become the current working directory, a process must
have execute (search) access to the directory.
RETURN VALUE
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()
fails and the current working directory remains unchanged
if one or more of the following are true:
- ENOTDIR
A component of the path name is not a directory.
- ENOENT
The named directory does not exist.
- EACCES
Search permission is denied for any component of the path name.
- EFAULT
path
points outside the allocated address space of the process.
The reliable detection of this error is implementation dependent.
- ENOENT
path
is null.
- ENAMETOOLONG
The length of the specified path name exceeds
PATH_MAX
bytes, or the length of a component of the path name exceeds
NAME_MAX
bytes while
_POSIX_NO_TRUNC
is in effect.
- ELOOP
Too many symbolic links were encountered in translating the path name.
fchdir()
fails and the current working directory remains unchanged
if one or more of the following are true:
- EACCES
Search permission is denied for
fildes.
- EBADF
fildes
is not an open file descriptor.
- ENOTDIR
The open file descriptor
fildes
does not refer to a directory.
AUTHOR
chdir()
and
fchdir()
were developed by
AT&T Bell Laboratories and HP.
STANDARDS CONFORMANCE
chdir(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1