Developer's Daily | Unix by Example |
main | java | perl | unix | dev directory | web log |
chdir, fchdir ? change working directory |
#include <unistd.h> int chdir(const char *path); |
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) |