man Pages(2): System Calls
只搜寻这本书
以 PDF 格式下载本书

NAME

chdir, fchdir - change working directory

SYNOPSIS

#include <unistd.h>
int chdir(const char * path);
int fchdir(int fildes);

MT-LEVEL

chdir( ) is Async-Signal-Safe

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 for path names not beginning with /. path points to the path name of a directory. The fildes argument to fchdir( ) is an open file descriptor of a directory.
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 zero 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 to an illegal address.
EINTR
A signal was caught during the execution of the chdir( ) function.
EIO
An I/O error occurred while reading from or writing to the file system.
ELOOP
Too many symbolic links were encountered in translating path.
ENAMETOOLONG
The length of the path argument exceeds {PATH_MAX}, or the length of a path component exceeds {NAME_MAX} while
{_POSIX_NO_TRUNC} is in effect.
ENOENT
Either a component of the path prefix or the directory named by path does not exist or is a null pathname.
ENOLINK
path points to a remote machine and the link to that machine is no longer active.
ENOTDIR
A component of the path name is not a directory.
EMULTIHOP
Components of path require hopping to multiple remote machines and file system type does not allow it.
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 fildes.
EBADF
fildes is not an open file descriptor.
EINTR
A signal was caught during the execution of the fchdir( ) function.
EIO
An I/O error occurred while reading from or writing to the file system.
ENOLINK
fildes points to a remote machine and the link to that machine is no longer active.
ENOTDIR
The open file descriptor fildes does not refer to a directory.

SEE ALSO

chroot(2)