aboutsummaryrefslogtreecommitdiffstats
path: root/man2/readlink.2
diff options
context:
space:
mode:
authorAlejandro Colomar <alx@kernel.org>2023-03-17 17:08:01 +0100
committerAlejandro Colomar <alx@kernel.org>2023-03-30 15:14:55 +0200
commit4131356cdab8d37fc395ca5466a0401c8573380c (patch)
tree8c4c6f1c3172358b735b481cbbfdd9cc04b00ed9 /man2/readlink.2
parentfd00f831b52d61a91d59cb3b46182869145d9700 (diff)
downloadman-pages-4131356cdab8.tar.gz
man*/, man-pages.7: VERSIONS, STANDARDS, HISTORY: Reorganize sections
- Add a new HISTORY section that covers the history of an API, both regarding implementations and regarding old standards. This was previously covered in VERSIONS, and in some cases in STANDARDS. - Repurpose VERSIONS to cover differing implementations in _current_ systems. - STANDARDS is reduced to only cover current versions of standards. That basically means only C11 (C99 has been superseeded by C11; C17 is just a bugfix of C11, so not really a new version), and POSIX.1-2008 (*-2001 was superseeded by *-2008; *-2017 was just a bugfix for *-2008). The section also mentions for example 'Linux', 'GNU' or 'BSD' when a non-standard API is Linux- or GNU-only or if it's (de-facto) standard in the BSDs. - In some cases content that should go into one of these sections was in NOTES. Move it from there to where it corresponds. - In the SYNOPSIS, I added [[deprecated]] in some functions that I found are deprecated by the relevant standards. - A few other related changes... Cc: Oskari Pirhonen <xxc3ncoredxx@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
Diffstat (limited to 'man2/readlink.2')
-rw-r--r--man2/readlink.248
1 files changed, 24 insertions, 24 deletions
diff --git a/man2/readlink.2 b/man2/readlink.2
index de158da7e3..c911c4a7b4 100644
--- a/man2/readlink.2
+++ b/man2/readlink.2
@@ -186,20 +186,20 @@ A component of the path prefix is not a directory.
is relative and
.I dirfd
is a file descriptor referring to a file other than a directory.
-.SH VERSIONS
-.BR readlinkat ()
-was added in Linux 2.6.16;
-library support was added in glibc 2.4.
.SH STANDARDS
-.BR readlink ():
+POSIX.1-2008.
+.SH HISTORY
+.TP
+.BR readlink ()
4.4BSD
-.RB ( readlink ()
-first appeared in 4.2BSD),
+(first appeared in 4.2BSD),
POSIX.1-2001, POSIX.1-2008.
-.PP
-.BR readlinkat ():
+.TP
+.BR readlinkat ()
POSIX.1-2008.
-.SH NOTES
+Linux 2.6.16,
+glibc 2.4.
+.PP
Up to and including glibc 2.4, the return type of
.BR readlink ()
was declared as
@@ -207,7 +207,20 @@ was declared as
Nowadays, the return type is declared as
.IR ssize_t ,
as (newly) required in POSIX.1-2001.
-.PP
+.SS glibc
+On older kernels where
+.BR readlinkat ()
+is unavailable, the glibc wrapper function falls back to the use of
+.BR readlink ().
+When
+.I pathname
+is a relative pathname,
+glibc constructs a pathname based on the symbolic link in
+.I /proc/self/fd
+that corresponds to the
+.I dirfd
+argument.
+.SH NOTES
Using a statically sized buffer might not provide enough room for the
symbolic link contents.
The required size for the buffer can be obtained from the
@@ -230,19 +243,6 @@ also addresses a common portability problem when using
for the buffer size,
as this constant is not guaranteed to be defined per POSIX
if the system does not have such limit.
-.SS glibc notes
-On older kernels where
-.BR readlinkat ()
-is unavailable, the glibc wrapper function falls back to the use of
-.BR readlink ().
-When
-.I pathname
-is a relative pathname,
-glibc constructs a pathname based on the symbolic link in
-.I /proc/self/fd
-that corresponds to the
-.I dirfd
-argument.
.SH EXAMPLES
The following program allocates the buffer needed by
.BR readlink ()