diff options
| author | Alejandro Colomar <alx.manpages@gmail.com> | 2022-09-09 14:15:08 +0200 |
|---|---|---|
| committer | Alejandro Colomar <alx.manpages@gmail.com> | 2022-09-09 14:15:08 +0200 |
| commit | 96e72ec1fbadd13cbcbc2b263540e4f5e9e09d7c (patch) | |
| tree | 70686b943e33a6e939ad265acb7ddfef70b91f32 /man/man3/getcwd.3 | |
| parent | 8f4ed6463206e8ede815c72085c7305dafc2e4fc (diff) | |
| download | man-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.3 | 302 |
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) |
