chdir - change working directory
#include <unistd.h>
int chdir(const char *path);
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 '/'.
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.
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 the path argument exceeds {PATH_MAX} or a pathname component 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]
- As a result of encountering a symbolic link in resolution of the path argument, the length of the substituted pathname string exceeded {PATH_MAX}.
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);
None.
The chdir() function only affects the working directory of the current process.
None.
getcwd(), the Base Definitions volume of IEEE Std 1003.1-2001, <unistd.h>
First released in Issue 1. Derived from Issue 1 of the SVID.
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.