Go to main content

man pages section 2: System Calls

Exit Print View

Updated: Thursday, June 13, 2019
 
 

chdir(2)

Name

chdir, fchdir - change working directory

Synopsis

#include <unistd.h>

int chdir(const char *path);
int fchdir(int fildes);

Description

The chdir() and fchdir() functions cause a directory pointed to by path or fildes to become the current working directory. The starting point for path searches for path names not beginning with / (slash). The path argument points to the path name of a directory. The fildes argument is an open file descriptor of a directory.

For a directory to become the current directory, a process must have execute (search) access to the directory.

Return Values

Upon successful completion, 0 is returned. Otherwise, −1 is returned, the current working directory is unchanged, and errno is set to indicate the error.

Errors

The chdir() function will fail if:

EACCES

Search permission is denied for any component of the path name.

EFAULT

The path argument points to an illegal address.

EINTR

A signal was caught during the execution of the chdir() function.

EIO

An I/O error occurred while reading from or writing to the file system.

ELOOP

Too many symbolic links were encountered in translating path.

ENAMETOOLONG

The length of the path argument exceeds PATH_MAX, or the length of a path component exceeds NAME_MAX while _POSIX_NO_TRUNC is in effect.

ENOENT

Either a component of the path prefix or the directory named by path does not exist or is a null pathname.

ENOLINK

The path argument points to a remote machine and the link to that machine is no longer active.

ENOTDIR

A component of the path name is not a directory.

The fchdir() function will fail if:

EACCES

Search permission is denied for fildes.

EBADF

The fildes argument is not an open file descriptor.

EINTR

A signal was caught during the execution of the fchdir() function.

EIO

An I/O error occurred while reading from or writing to the file system.

ENOLINK

The fildes argument points to a remote machine and the link to that machine is no longer active.

ENOTDIR

The open file descriptor fildes does not refer to a directory.

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
MT-Level
Async-Signal-Safe
Standard

See Also

chroot(2), attributes(7), standards(7)