.\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992
.\"
.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one.
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date.  The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein.  The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
.\" Modified by Michael Haardt <michael@moria.de>
.\" Modified 1993-07-21 by Rik Faith <faith@cs.unc.edu>
.\" Modified 1995-04-15 by Michael Chastain <mec@shell.portal.com>:
.\"   Added 'fchdir'. Fixed bugs in error section.
.\" Modified 1996-10-21 by Eric S. Raymond <esr@thyrsus.com>
.\" Modified 1997-08-21 by Joseph S. Myers <jsm28@cam.ac.uk>
.\" Modified 2004-06-23 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.TH CHDIR 2 2017-09-15 "Linux" "Linux Programmer's Manual"
.SH NAME
chdir, fchdir \- change working directory
.SH SYNOPSIS
.B #include <unistd.h>
.PP
.BI "int chdir(const char *" path );
.br
.BI "int fchdir(int " fd );
.PP
.in -4n
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.in
.PP
.BR fchdir ():
.PD 0
.ad l
.RS 4
_XOPEN_SOURCE\ >=\ 500
.\"    || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
    || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L
    || /* Glibc up to and including 2.19: */ _BSD_SOURCE
.RE
.ad
.PD
.SH DESCRIPTION
.BR chdir ()
changes the current working directory of the calling process to the
directory specified in
.IR path .
.PP
.BR fchdir ()
is identical to
.BR chdir ();
the only difference is that the directory is given as an
open file descriptor.
.SH RETURN VALUE
On success, zero is returned.
On error, \-1 is returned, and
.I errno
is set appropriately.
.SH ERRORS
Depending on the filesystem, other errors can be returned.
The more
general errors for
.BR chdir ()
are listed below:
.TP
.B EACCES
Search permission is denied for one of the components of
.IR path .
(See also
.BR path_resolution (7).)
.TP
.B EFAULT
.I path
points outside your accessible address space.
.TP
.B EIO
An I/O error occurred.
.TP
.B ELOOP
Too many symbolic links were encountered in resolving
.IR path .
.TP
.B ENAMETOOLONG
.I path
is too long.
.TP
.B ENOENT
The directory specified in
.I path
does not exist.
.TP
.B ENOMEM
Insufficient kernel memory was available.
.TP
.B ENOTDIR
A component of
.I path
is not a directory.
.PP
The general errors for
.BR fchdir ()
are listed below:
.TP
.B EACCES
Search permission was denied on the directory open on
.IR fd .
.TP
.B EBADF
.I fd
is not a valid file descriptor.
.SH CONFORMING TO
POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD.
.SH NOTES
The current working directory is the starting point for interpreting
relative pathnames (those not starting with \(aq/\(aq).
.PP
A child process created via
.BR fork (2)
inherits its parent's current working directory.
The current working directory is left unchanged by
.BR execve (2).
.SH SEE ALSO
.BR chroot (2),
.BR getcwd (3),
.BR path_resolution (7)
