Originální popis anglicky:
chdir, fchdir - change working directory
Návod, kniha: Linux Programmer's Manual
#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; the only difference is 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:
- EACCES
- Search permission is denied for one of the directories in
the path prefix of path. (See also path_resolution(2).)
- EFAULT
- path points outside your accessible address
space.
- EIO
- An I/O error occurred.
- ELOOP
- Too many symbolic links were encountered in resolving
path.
- 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.
The general errors for
fchdir are listed below:
- EACCES
- Search permission was denied on the directory open on
fd.
- EBADF
- fd is not a valid file descriptor.
The prototype for
fchdir is only available if
_BSD_SOURCE is
defined (either explicitly, or implicitly, by not defining _POSIX_SOURCE or
compiling with the -ansi flag).
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.
chroot(2),
path_resolution(2),
getcwd(3)