chdir(2) chdir(2)
NAME
chdir, fchdir - change working directory
SYNOPSIS
#include <unistd.h>
int chdir(const char *path);
int fchdir(int fildes);
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 pathnames not beginning with /.
path points to the pathname 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
On success, chdir returns 0. On failure, chdir returns -1,
sets errno to identify the error, and the current directory
remains unchanged.
Errors
In the following conditions, chdir fails and sets errno to:
EACCES Search permission is denied for any component of the
pathname.
EFAULT path points outside the allocated address space of the
process.
EINTR A signal was caught during the execution of the chdir
system call.
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.
Copyright 1994 Novell, Inc. Page 1
chdir(2) chdir(2)
ENOTDIR
A component of the pathname is not a directory.
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.
EMULTIHOP
Components of path require hopping to multiple remote
machines and file system type does not allow it.
In the following conditions, fchdir fails and sets errno to:
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
system call.
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.
ENOENT The directory pointed to by fildes does not exist.
REFERENCES
chroot(2)
NOTICES
Considerations for Threads Programming
Both current working directory and current root directory are
process attributes and are shared by all related threads. A
change by one thread will be shared by all siblings.
Copyright 1994 Novell, Inc. Page 2