summaryrefslogtreecommitdiffstats
path: root/man2/chdir.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/chdir.2')
-rw-r--r--man2/chdir.2127
1 files changed, 127 insertions, 0 deletions
diff --git a/man2/chdir.2 b/man2/chdir.2
new file mode 100644
index 0000000..5aca7bf
--- /dev/null
+++ b/man2/chdir.2
@@ -0,0 +1,127 @@
+.\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.\" 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 2023-03-30 "Linux man-pages 6.05.01"
+.SH NAME
+chdir, fchdir \- change working directory
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.B #include <unistd.h>
+.PP
+.BI "int chdir(const char *" path );
+.BI "int fchdir(int " fd );
+.fi
+.PP
+.RS -4
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.RE
+.PP
+.BR fchdir ():
+.nf
+ _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
+.fi
+.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 to indicate the error.
+.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.
+.TP
+.B ENOTDIR
+.I fd
+does not refer to a directory.
+.SH STANDARDS
+POSIX.1-2008.
+.SH HISTORY
+POSIX.1-2001, 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)