GNU/Linux |
RedHat 6.2(Zoot) |
|
![]() |
fchdir(2) |
![]() |
chdir, fchdir − change working directory
#include <unistd.h>
int
chdir(const char *path);
int fchdir(int fd);
chdir changes the current directory to that specified in path.
fchdir is identical to chdir, only that the directory is given as an open file descriptor.
On success, zero is returned. On error, −1 is returned, and errno is set appropriately.
Depending on the file system, other errors can be returned. The more general errors for chdir are listed below:
EFAULT |
path points outside your accessible address space. |
ENAMETOOLONG
path is too long.
ENOENT |
The file does not exist. |
|||
ENOMEM |
Insufficient kernel memory was available. |
ENOTDIR
A component of path is not a directory.
EACCES |
Search permission is denied on a component of path. | ||
ELOOP |
Too many symbolic links were encountered in resolving path. | ||
EIO |
An I/O error occurred. |
The general errors for fchdir are listed below:
EBADF |
fd is not a valid file descriptor. | ||
EACCES |
Search permission was denied on the directory open on fd. |
The chdir call is compatible with SVr4, SVID, POSIX, X/OPEN, 4.4BSD. SVr4 documents additional EINTR, ENOLINK, and EMULTIHOP error conditions but has no ENOMEM. POSIX.1 does not have ENOMEM or ELOOP error conditions. X/OPEN does not have EFAULT, ENOMEM or EIO error conditions.
The fchdir call is compatible with SVr4, 4.4BSD and X/OPEN. SVr4 documents additional EIO, EINTR, and ENOLINK error conditions. X/OPEN documents additional EINTR and EIO error conditions.
getcwd(3), chroot(2)
![]() |
fchdir(2) | ![]() |