CHDIR(3) Library Functions Manual CHDIR(3)

chdirchange 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 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 shall be set to indicate the error.

The chdir () function shall fail if:

Search permission is denied for any component of the pathname.
A loop exists in symbolic links encountered during resolution of the path argument.
The length of the path argument exceeds {PATH_MAX} or a pathname component is longer than {NAME_MAX}.
A component of path does not name an existing directory or path is an empty string.
A component of the pathname is not a directory.

The chdir () function may fail if:

More than {SYMLOOP_MAX} symbolic links were encountered during resolution of the path argument.
As a result of encountering a symbolic link in resolution of the path argument, the length of the substituted pathname string exceeded {PATH_MAX}.

The following example makes the value pointed to by , , 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(3), the Base Definitions volume of IEEE Std 1003.1-2001 (“POSIX.1”), <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.

footer end

January 1, 2004 posix.fail