aboutsummaryrefslogtreecommitdiffstats
path: root/man/man3/getcwd.3
diff options
context:
space:
mode:
authorAlejandro Colomar <alx.manpages@gmail.com>2022-09-09 14:15:08 +0200
committerAlejandro Colomar <alx.manpages@gmail.com>2022-09-09 14:15:08 +0200
commit96e72ec1fbadd13cbcbc2b263540e4f5e9e09d7c (patch)
tree70686b943e33a6e939ad265acb7ddfef70b91f32 /man/man3/getcwd.3
parent8f4ed6463206e8ede815c72085c7305dafc2e4fc (diff)
downloadman-pages-96e72ec1fbadd13cbcbc2b263540e4f5e9e09d7c.tar.gz
Revert "src.mk, All pages: Move man* to man/"
This reverts commit 70ac1c4785fc1e158ab2349a962dba2526bf4fbc. Link: <https://lore.kernel.org/linux-man/YxcV4h+Xn7cd6+q2@pevik/T/> Reported-by: Petr Vorel <pvorel@suse.cz> Reported-by: Jakub Wilk <jwilk@jwilk.net> Cc: Stefan Puiu <stefan.puiu@gmail.com> Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
Diffstat (limited to 'man/man3/getcwd.3')
-rw-r--r--man/man3/getcwd.3302
1 files changed, 0 insertions, 302 deletions
diff --git a/man/man3/getcwd.3 b/man/man3/getcwd.3
deleted file mode 100644
index 90c565536b..0000000000
--- a/man/man3/getcwd.3
+++ /dev/null
@@ -1,302 +0,0 @@
-.\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de)
-.\"
-.\" SPDX-License-Identifier: Linux-man-pages-copyleft
-.\"
-.\" Modified Wed Jul 21 22:35:42 1993 by Rik Faith (faith@cs.unc.edu)
-.\" Modified 18 Mar 1996 by Martin Schulze (joey@infodrom.north.de):
-.\" Corrected description of getwd().
-.\" Modified Sat Aug 21 12:32:12 MET 1999 by aeb - applied fix by aj
-.\" Modified Mon Dec 11 13:32:51 MET 2000 by aeb
-.\" Modified Thu Apr 22 03:49:15 CEST 2002 by Roger Luethi <rl@hellgate.ch>
-.\"
-.TH GETCWD 3 2021-03-22 "Linux man-pages (unreleased)"
-.SH NAME
-getcwd, getwd, get_current_dir_name \- get current working directory
-.SH LIBRARY
-Standard C library
-.RI ( libc ", " \-lc )
-.SH SYNOPSIS
-.nf
-.B #include <unistd.h>
-.PP
-.BI "char *getcwd(char *" buf ", size_t " size );
-.B "char *get_current_dir_name(void);"
-.PP
-.BI "[[deprecated]] char *getwd(char " buf [PATH_MAX]);
-.fi
-.PP
-.RS -4
-Feature Test Macro Requirements for glibc (see
-.BR feature_test_macros (7)):
-.RE
-.PP
-.BR get_current_dir_name ():
-.nf
- _GNU_SOURCE
-.fi
-.PP
-.BR getwd ():
-.nf
- Since glibc 2.12:
- (_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200809L)
- || /* Glibc since 2.19: */ _DEFAULT_SOURCE
- || /* Glibc <= 2.19: */ _BSD_SOURCE
- Before glibc 2.12:
- _BSD_SOURCE || _XOPEN_SOURCE >= 500
-.\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
-.fi
-.SH DESCRIPTION
-These functions return a null-terminated string containing an
-absolute pathname that is the current working directory of
-the calling process.
-The pathname is returned as the function result and via the argument
-.IR buf ,
-if present.
-.PP
-The
-.BR getcwd ()
-function copies an absolute pathname of the current working directory
-to the array pointed to by
-.IR buf ,
-which is of length
-.IR size .
-.PP
-If the length of the absolute pathname of the current working directory,
-including the terminating null byte, exceeds
-.I size
-bytes, NULL is returned, and
-.I errno
-is set to
-.BR ERANGE ;
-an application should check for this error, and allocate a larger
-buffer if necessary.
-.PP
-As an extension to the POSIX.1-2001 standard, glibc's
-.BR getcwd ()
-allocates the buffer dynamically using
-.BR malloc (3)
-if
-.I buf
-is NULL.
-In this case, the allocated buffer has the length
-.I size
-unless
-.I size
-is zero, when
-.I buf
-is allocated as big as necessary.
-The caller should
-.BR free (3)
-the returned buffer.
-.PP
-.BR get_current_dir_name ()
-will
-.BR malloc (3)
-an array big enough to hold the absolute pathname of
-the current working directory.
-If the environment
-variable
-.B PWD
-is set, and its value is correct, then that value will be returned.
-The caller should
-.BR free (3)
-the returned buffer.
-.PP
-.BR getwd ()
-does not
-.BR malloc (3)
-any memory.
-The
-.I buf
-argument should be a pointer to an array at least
-.B PATH_MAX
-bytes long.
-If the length of the absolute pathname of the current working directory,
-including the terminating null byte, exceeds
-.B PATH_MAX
-bytes, NULL is returned, and
-.I errno
-is set to
-.BR ENAMETOOLONG .
-(Note that on some systems,
-.B PATH_MAX
-may not be a compile-time constant;
-furthermore, its value may depend on the filesystem, see
-.BR pathconf (3).)
-For portability and security reasons, use of
-.BR getwd ()
-is deprecated.
-.SH RETURN VALUE
-On success, these functions return a pointer to a string containing
-the pathname of the current working directory.
-In the case of
-.BR getcwd ()
-and
-.BR getwd ()
-this is the same value as
-.IR buf .
-.PP
-On failure, these functions return NULL, and
-.I errno
-is set to indicate the error.
-The contents of the array pointed to by
-.I buf
-are undefined on error.
-.SH ERRORS
-.TP
-.B EACCES
-Permission to read or search a component of the filename was denied.
-.TP
-.B EFAULT
-.I buf
-points to a bad address.
-.TP
-.B EINVAL
-The
-.I size
-argument is zero and
-.I buf
-is not a null pointer.
-.TP
-.B EINVAL
-.BR getwd ():
-.I buf
-is NULL.
-.TP
-.B ENAMETOOLONG
-.BR getwd ():
-The size of the null-terminated absolute pathname string exceeds
-.B PATH_MAX
-bytes.
-.TP
-.B ENOENT
-The current working directory has been unlinked.
-.TP
-.B ENOMEM
-Out of memory.
-.TP
-.B ERANGE
-The
-.I size
-argument is less than the length of the absolute pathname of the
-working directory, including the terminating null byte.
-You need to allocate a bigger array and try again.
-.SH ATTRIBUTES
-For an explanation of the terms used in this section, see
-.BR attributes (7).
-.ad l
-.nh
-.TS
-allbox;
-lbx lb lb
-l l l.
-Interface Attribute Value
-T{
-.BR getcwd (),
-.BR getwd ()
-T} Thread safety MT-Safe
-T{
-.BR get_current_dir_name ()
-T} Thread safety MT-Safe env
-.TE
-.hy
-.ad
-.sp 1
-.SH STANDARDS
-.BR getcwd ()
-conforms to POSIX.1-2001.
-Note however that POSIX.1-2001 leaves the behavior of
-.BR getcwd ()
-unspecified if
-.I buf
-is NULL.
-.PP
-.BR getwd ()
-is present in POSIX.1-2001, but marked LEGACY.
-POSIX.1-2008 removes the specification of
-.BR getwd ().
-Use
-.BR getcwd ()
-instead.
-POSIX.1-2001
-does not define any errors for
-.BR getwd ().
-.PP
-.BR get_current_dir_name ()
-is a GNU extension.
-.SH NOTES
-Under Linux, these functions make use of the
-.BR getcwd ()
-system call (available since Linux 2.1.92).
-On older systems they would query
-.IR /proc/self/cwd .
-If both system call and proc filesystem are missing, a
-generic implementation is called.
-Only in that case can
-these calls fail under Linux with
-.BR EACCES .
-.PP
-These functions are often used to save the location of the current working
-directory for the purpose of returning to it later.
-Opening the current
-directory (".") and calling
-.BR fchdir (2)
-to return is usually a faster and more reliable alternative when sufficiently
-many file descriptors are available, especially on platforms other than Linux.
-.\"
-.SS C library/kernel differences
-On Linux, the kernel provides a
-.BR getcwd ()
-system call, which the functions described in this page will use if possible.
-The system call takes the same arguments as the library function
-of the same name, but is limited to returning at most
-.B PATH_MAX
-bytes.
-(Before Linux 3.12,
-.\" commit 3272c544da48f8915a0e34189182aed029bd0f2b
-the limit on the size of the returned pathname was the system page size.
-On many architectures,
-.B PATH_MAX
-and the system page size are both 4096 bytes,
-but a few architectures have a larger page size.)
-If the length of the pathname of the current working directory
-exceeds this limit, then the system call fails with the error
-.BR ENAMETOOLONG .
-In this case, the library functions fall back to
-a (slower) alternative implementation that returns the full pathname.
-.PP
-Following a change in Linux 2.6.36,
-.\" commit 8df9d1a4142311c084ffeeacb67cd34d190eff74
-the pathname returned by the
-.BR getcwd ()
-system call will be prefixed with the string "(unreachable)"
-if the current directory is not below the root directory of the current
-process (e.g., because the process set a new filesystem root using
-.BR chroot (2)
-without changing its current directory into the new root).
-Such behavior can also be caused by an unprivileged user by changing
-the current directory into another mount namespace.
-When dealing with pathname from untrusted sources, callers of the
-functions described in this page
-should consider checking whether the returned pathname starts
-with '/' or '(' to avoid misinterpreting an unreachable path
-as a relative pathname.
-.SH BUGS
-Since the Linux 2.6.36 change that added "(unreachable)" in the
-circumstances described above, the glibc implementation of
-.BR getcwd ()
-has failed to conform to POSIX and returned a relative pathname when the API
-contract requires an absolute pathname.
-With glibc 2.27 onwards this is corrected;
-calling
-.BR getcwd ()
-from such a pathname will now result in failure with
-.BR ENOENT .
-.SH SEE ALSO
-.BR pwd (1),
-.BR chdir (2),
-.BR fchdir (2),
-.BR open (2),
-.BR unlink (2),
-.BR free (3),
-.BR malloc (3)