chdir(S)
chdir, fchdir --
change working directory
Syntax
cc . . . -lc
#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.
Diagnostics
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.
[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 filesystem 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.
[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.
Files
/lib/libc.a-
linking library
See also
chroot(S)
Standards conformance
chdir is conformant with:
AT&T SVID Issue 3;
X/Open Portability Guide, Issue 3, 1989
;
Intel386 Binary Compatibility Specification, Edition 2 (iBCSe2)
;
IEEE POSIX Std 1003.1-1990 System Application Program Interface (API) [C Language] (ISO/IEC 9945-1)
;
and
NIST FIPS 151-1
.
fchdir is conformant with:
AT&T SVID Issue 3.
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003