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
The
fchdir() function call appeared in
4.2BSD.