NAME
chdir — change
working directory
SYNOPSIS
#include
<unistd.h>
int chdir(const char *path);
DESCRIPTION
The chdir () function shall cause the
directory named by the pathname pointed to by the
path
argument to become the current working directory; that is, the starting
point for path searches for pathnames not beginning with
‘/’ .
RETURN VALUE
Upon successful completion, 0 shall be returned. Otherwise, -1 shall be returned, the current working directory shall remain unchanged, and errno shall be set to indicate the error.
ERRORS
The chdir () function shall fail if:
- [EACCES]
- Search permission is denied for any component of the pathname.
- [ELOOP]
- A loop exists in symbolic links encountered during resolution of the path argument.
- [ENAMETOOLONG]
- The length of a component of a pathname is longer than {NAME_MAX}.
- [ENOENT]
- A component of path does not name an existing directory or path is an empty string.
- [ENOTDIR]
- A component of the pathname is not a directory.
The chdir () function may fail if:
- [ELOOP]
- More than {SYMLOOP_MAX} symbolic links were encountered during resolution of the path argument.
- [ENAMETOOLONG]
- The length of a pathname exceeds {PATH_MAX}, or pathname resolution of a symbolic link produced an intermediate result with a length that exceeds {PATH_MAX}.
EXAMPLES
Changing the Current Working Directory
The following example makes the value pointed to by directory, /tmp, the current working directory.
#include <unistd.h> ... char *directory = "/tmp"; int ret; ret = chdir (directory);
APPLICATION USAGE
None.
RATIONALE
The chdir () function only affects the
working directory of the current process.
FUTURE DIRECTIONS
None.
SEE ALSO
XBD <unistd.h>
CHANGE HISTORY
First released in Issue 1. Derived from Issue 1 of the SVID.
Issue 6
The APPLICATION USAGE section is added.
The following new requirements on POSIX implementations derive from alignment with the Single UNIX Specification:
- The [ELOOP] mandatory error condition is added.
- A second [ENAMETOOLONG] is added as an optional error condition.
The following changes were made to align with the IEEE P1003.1a draft standard:
- The [ELOOP] optional error condition is added.
Issue 7
Austin Group Interpretation 1003.1-2001 #143 is applied.