The Open Group Base Specifications Issue 7
IEEE Std 1003.1-2008, 2016 Edition
Copyright © 2001-2016 The IEEE and The Open Group

#### 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 names an existing file that is neither a directory nor a symbolic link to 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}.

The following sections are informative.

#### 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

> getcwd

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

> POSIX.1-2008, Technical Corrigendum 1, XSH/TC1-2008/0047 [324] is applied.

End of informative text.

return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
Copyright © 2001-2016 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]