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.
A newer edition of this document exists here

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 following changes were made to align with the IEEE P1003.1a draft standard:

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 ]