The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.

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

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(), the Base Definitions volume of IEEE Std 1003.1-2001, <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.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]