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 a component of a pathname 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.
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}.

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)

XBD <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.

Austin Group Interpretation 1003.1-2001 #143 is applied.

January 1, 2008 posix.fail