chdir(S)
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, or have the
P_DACREAD privilege.
Return values
On success, chdir returns 0.
On failure, chdir returns -1, sets errno to identify the error,
and the current directory remains unchanged.
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.
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(S)
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.
© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 - 01 June 2005