aboutsummaryrefslogtreecommitdiffstats
path: root/man3
AgeCommit message (Collapse)AuthorFilesLines
2023-02-05Many pages: Use \[en] instead of \(enAlejandro Colomar6-32/+32
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-02-05Many pages: Use \[aq] instead of \(aqAlejandro Colomar112-325/+325
This improves readability in the source code, since it delimits where the escape sequence ends. Cc: наб <nabijaczleweli@nabijaczleweli.xyz> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Brian Inglis <Brian.Inglis@Shaw.ca> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-02-05Many pages: Use lowercase for 'glibc'Alejandro Colomar159-246/+246
It's a proper noun, whose original letter case should be respected. glibc's own documentation uses always lowercase; let's do the same here. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-02-05sscanf.3: BUGS: Document the UB in some conversion specifiersAlejandro Colomar1-0/+19
This is a bug in the standards, but implementation should not follow the standard in this case. Link: <https://lore.kernel.org/linux-man/20221208123454.13132-1-abbotti@mev.co.uk/T/#u> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Zack Weinberg <zack@owlfolio.org> Cc: Joseph Myers <joseph@codesourcery.com> Cc: Eric Biggers <ebiggers@kernel.org> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-02-05regex.3: tfixAlejandro Colomar1-1/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Mario Blaettermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-26fopencookie.3: EXAMPLES: Fix memory leakAlejandro Colomar1-0/+2
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-26getdate.3: EXAMPLES: Fix printf() conversion specifierAlejandro Colomar1-1/+1
Fixes: b42296e4 "Various pages: EXAMPLES: Use unsigned types for loop iterators" Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-26pthread_setschedparam.3: EXAMPLES: Don't assign unused valueAlejandro Colomar1-1/+1
We're not reading the value after it's set. And I just checked that that function can't fail for reasonable input. Reported-by: cppcheck(1) Reported-by: `make lint-c-cppcheck` Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-26tsearch.3: EXAMPLES: Don't else after noreturnAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-26stpncpy.3: EXAMPLES: tfixAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-26rpmatch.3: EXAMPLES: Use _DEFAULT_SOURCE instead of _SVID_SOURCEAlejandro Colomar1-1/+1
_SVID_SOURCE is deprecated. Show how a program should be written today. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-26static_assert.3: srcfixAlejandro Colomar1-0/+1
Add missing ." SRC END comment. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-26Various pages: EXAMPLES: Fix -Wdeclaration-after-statement errorsAlejandro Colomar2-4/+5
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-22string.3: wfixAlejandro Colomar1-2/+2
Use consistent syntax for 'dest' vs 'dst' in string(3). Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blaettermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-19getnameinfo.3: SYNOPSIS: Add missing _Nullable qualifiersAlejandro Colomar1-2/+4
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-19roundup.3: New page documenting roundup(3)Alejandro Colomar1-0/+56
Cc: Paul Eggert <eggert@cs.ucla.edu> Cc: Wilco Dijkstra <Wilco.Dijkstra@arm.com> Cc: Adhemerval Zanella <adhemerval.zanella@linaro.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-07intro.3: ffixG. Branden Robinson1-1/+3
Set "feature test macros" in italics when introducing it as a technical term. Signed-off-by: G. Branden Robinson <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-07intro.3: srcfixG. Branden Robinson1-15/+27
* Break input lines at phrase boundaries more often. * Break input lines after commas. * Set multi-word parentheticals on their own input lines. Signed-off-by: G. Branden Robinson <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-07Many pages: TH: Use lowercaseAlejandro Colomar29-29/+29
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-07bcmp.3, memcmp.3, strcasecmp.3, strcmp.3, strcoll.3, strxfrm.3: Deprecate ↵Alejandro Colomar6-59/+6
bcmp(3) It is identical to memcmp(3). Use that. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-05arc4random.3: Raise the severity of the CAVEATS to BUGSAlejandro Colomar1-2/+2
This is a misdesign that the original OpenBSD developers fail to acknowledge. Link: <https://inbox.sourceware.org/libc-alpha/068b01c4-d0c4-0849-eabb-09c020a1480b@gmail.com/T/> Cc: "Jason A. Donenfeld" <Jason@zx2c4.com> Cc: Arsen Arsenović <arsen@aarsen.me> Cc: Sam James <sam@gentoo.org> Cc: "Serge E. Hallyn" <serge@hallyn.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-05memchr.3: Deprecate rawmemchr(3)Alejandro Colomar1-16/+12
It is not optimized, and it calls either strlen(3) or memchr(3), so the caller can do it directly, and it will be better. Suggested-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-05index.3, memchr.3, strchr.3, string.3, strpbrk.3, strsep.3, strspn.3, ↵Alejandro Colomar9-73/+16
strstr.3, strtok.3: Deprecate index(3) and rindex(3) They are identical to strchr(3) and strrchr(3). Use those. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-02intro.3: tfixG. Branden Robinson1-1/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-02arc4random.3: Be consistent in uses of pseudorandomAlejandro Colomar1-5/+5
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-01arc4random_buf.3, arc4random_uniform.3: Add links to arc4random(3)Alejandro Colomar2-0/+2
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-01-01arc4random.3: New page documenting the arc4random(3) family of functionsAlejandro Colomar1-0/+104
arc4random(3) arc4random_uniform(3) arc4random_buf(3) Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-31powerof2.3: New page documenting powerof2(3)Alejandro Colomar1-0/+46
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-31bstring.3: bcopy(3)'s replacement is memmove(3), not memcpy(3)Alejandro Colomar1-1/+1
Reported-by: Aaron Peter Bachmann <aaron_ng@inode.at> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-31bstring.3: bzero(3) is not deprecated in my bookAlejandro Colomar1-6/+4
It is technically superior to memset(3) in every way. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-30rand.3: SYNOPSIS: Mark rand_r() as deprecatedAlejandro Colomar1-1/+2
POSIX.1-2008 says so, and it's not a very useful function either. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-29memchr.3: The function always returns a pointer to the matchAlejandro Colomar1-2/+1
Otherwise, it means we're deep into UB lands, and there be dragons. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-29rand.3: EXAMPLES: Show how to get a random seedAlejandro Colomar1-0/+8
This is useful when testing many different cases, but repeatability is more important than quality of the random numbers. Cc: Jonny Grant <jg@jguk.org> Cc: Cristian Rodríguez <crrodriguez@opensuse.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-29Many pages: Remove references to C89Alejandro Colomar85-132/+87
C89 is obsolete, and programs should target newer standards. If someone needs information about is, the Standard itself is a better resource. Let's move forward, so readers get the intended notice that C89 is not a useful version of C. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-29scanf.3, sscanf.3, vsscanf.3: Split the page, one for strings and one for FILEsAlejandro Colomar3-665/+756
From these functions, the ones that read from a FILE* are very difficult --if not impossible-- to use correctly. Let's split the page into two, so that we give the impression that sscanf(3) is the first class citizen, and the others are just historic artifacts that are kept for backwards-compatibility reasons. FILE* variants are now in a page which clearly tells the reader to look for other ways to read input. Link: <https://lore.kernel.org/linux-man/633629bd-753c-3097-9896-2491a0b0f1a2@gmail.com/T/> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Zack Weinberg <zack@owlfolio.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-21strncat.3: EXAMPLES: Check the return of malloc(3)Alejandro Colomar1-0/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-21strcpy.3: EXAMPLES: Check the return of malloc(3)Alejandro Colomar1-0/+5
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-20strncat.3: Rewrite to be consistent with string_copying.7Alejandro Colomar1-100/+57
Cc: Martin Sebor <msebor@redhat.com> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Douglas McIlroy <douglas.mcilroy@dartmouth.edu> Cc: Jakub Wilk <jwilk@jwilk.net> Cc: Serge Hallyn <serge@hallyn.com> Cc: Iker Pedrosa <ipedrosa@redhat.com> Cc: Andrew Pinski <pinskia@gmail.com> Cc: Stefan Puiu <stefan.puiu@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-20stpncpy.3, strncpy.3: Document in a single pageAlejandro Colomar2-194/+102
Rewrite to be consistent with the new string_copying.7 page. Cc: Martin Sebor <msebor@redhat.com> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Douglas McIlroy <douglas.mcilroy@dartmouth.edu> Cc: Jakub Wilk <jwilk@jwilk.net> Cc: Serge Hallyn <serge@hallyn.com> Cc: Iker Pedrosa <ipedrosa@redhat.com> Cc: Andrew Pinski <pinskia@gmail.com> Cc: Stefan Puiu <stefan.puiu@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-20stpcpy.3, strcpy.3, strcat.3: Document in a single pageAlejandro Colomar3-360/+152
Rewrite to be consistent with the new string_copying.7 page. Cc: Martin Sebor <msebor@redhat.com> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Douglas McIlroy <douglas.mcilroy@dartmouth.edu> Cc: Jakub Wilk <jwilk@jwilk.net> Cc: Serge Hallyn <serge@hallyn.com> Cc: Iker Pedrosa <ipedrosa@redhat.com> Cc: Andrew Pinski <pinskia@gmail.com> Cc: Stefan Puiu <stefan.puiu@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-20stpecpy.3, stpecpyx.3, ustpcpy.3, ustr2stp.3, zustr2stp.3, zustr2ustp.3: Add ↵Alejandro Colomar6-0/+6
new links to string_copying(7) Cc: Martin Sebor <msebor@redhat.com> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Douglas McIlroy <douglas.mcilroy@dartmouth.edu> Cc: Jakub Wilk <jwilk@jwilk.net> Cc: Serge Hallyn <serge@hallyn.com> Cc: Iker Pedrosa <ipedrosa@redhat.com> Cc: Andrew Pinski <pinskia@gmail.com> Cc: Stefan Puiu <stefan.puiu@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-15Many pages: Add '\" t' comment where necessaryAlejandro Colomar518-0/+518
Scripted change: $ grep -l -x '^[.]TS$' man*/* | sort -u | xargs sed -i -e "1i'\\\\\" t" Link: <https://lore.kernel.org/linux-man/07a7d4e7-79a6-b2c3-6892-1e39a0679f27@gmail.com/T/#mcf36c8a387fd5ff4f800dc220e3dbdd229b556bd> Reported-by: Jakub Wilk <jwilk@jwilk.net> Cc: Mike Frysinger <vapier@gentoo.org> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Michael Kerrisk <mtk.manpages@gmail.com> Cc: Stefan Puiu <stefan.puiu@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-12scanf.3: Do not mention the ERANGE errorIan Abbott1-7/+0
The `scanf()` function does not intentionally set `errno` to `ERANGE`. That is just a side effect of the code that it uses to perform conversions. It also does not work as reliably as indicated in the 'man' page when the target integer type is narrower than `long`. Typically (at least in glibc) for target integer types narrower than `long`, the number has to exceed the range of `long` (for signed conversions) or `unsigned long` (for unsigned conversions) for `errno` to be set to `ERANGE`. Documenting `ERANGE` in the ERRORS section kind of implies that `scanf()` should return `EOF` when an integer overflow is encountered, which it doesn't (and doing so would violate the C standard). Just remove any mention of the `ERANGE` error to avoid confusion. Fixes: 646af540e467 ("Add an ERRORS section documenting at least some of the errors that may occur for scanf().") Link: <https://lore.kernel.org/linux-man/5af4f708-337f-fddf-9a2d-e0e4602d3a72@mev.co.uk/T/#m900a1b1741afefab008a69e6b76919cd94aa81ef> Cc: Michael Kerrisk <mtk.manpages@gmail.com> Cc: Zack Weinberg <zack@owlfolio.org> Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-12scanf.3: Deprecate unsafe conversion specifiersAlejandro Colomar1-0/+11
Use of numeric conversion specifiers can produce Undefined Behvaior under conditions that the program doesn't control; therefore, there's no way to use them safely. Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Zack Weinberg <zack@owlfolio.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-12intro.3: Document subsections of man3Alejandro Colomar1-0/+31
Cowritten-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Ingo Schwarze <schwarze@openbsd.org> Cc: Douglas McIlroy <douglas.mcilroy@dartmouth.edu> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-11shm_open.3: tfixAlejandro Colomar1-2/+2
Reported-by: 1092615079 <1092615079@qq.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-06stpncpy.3, strncpy.3: wfixAlejandro Colomar2-4/+4
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-06strncat.3: Overrunning the dest buffer is not that badAlejandro Colomar1-117/+28
With the right function call, that is, one that always copies the same amount of bytes, and is so simple that can be inlined, the behavior will be consistent enough to be warned by the compiler in most cases of overrun, and crash quite consistently in the remaining. Prefer simplicity over correctness, so suggest the simpler ustr2stp(). Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-06string.3, strncat.3: Undeprecate strncat(3)Alejandro Colomar2-36/+198
After some investigation, I found a case where this function is useful: Concatenating an unterminated string into a string. It's not an ideal API for that, but there's no other API that does it. The closest thing, and something that some projects use instead of strncat(3), is calling mempcpy(3) directly. However mempcpy(3) isn't ideal either (it's faster; just that). It even requires a multiline pattern to use correctly, which is a source of bugs. So, suggest using a custom alternative that needs to be defined by the programmer, which handles all the subtle details much better than any of the conventional functions: ustr2stpe(). Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-06string.3, strncat.3: Fix typo in prototype of strncat(3)Alejandro Colomar2-2/+2
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-06string.3: strncpy(3), strncat(3): Obsolete, and fixAlejandro Colomar1-28/+29
The prototype for strncat(3) was wrong. Fix it. Mark the functions as obsolete. Fix the descriptions, to remove misleading text. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-06strncat.3: tfixAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-05strncat.3: BUGS: TruncationAlejandro Colomar1-0/+7
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-05strcat.3, strncat.3: RIP strncat(3)Alejandro Colomar2-72/+95
Never use this function. Really. Cc: <pkg-shadow-devel@alioth-lists.debian.net> Cc: <libc-alpha@sourceware.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-05strcat.3: SYNOPSIS: Fix the size of 'dest'Alejandro Colomar1-3/+2
I had a mistake when adding VLA syntax to this prototype. From this fixed prototype, it's visible how broken the design for this function is. Next move is to kill this function. Cc: <libc-alpha@sourceware.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-05stpncpy.3: Clarify what this function is forAlejandro Colomar1-34/+48
Use concise wording to make the points more direct. This function is rarely used for its only valid purpose. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-05strncpy.3: Rename CAVEATS to BUGSAlejandro Colomar1-2/+2
Those are not caveats, but actual bugs. This function was misdesigned. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-05strncpy.3: wfixAlejandro Colomar1-1/+0
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-05strncpy.3: NAME: Clarify what this function isAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-05strncpy.3: SEE ALSO: Remove some referencesAlejandro Colomar1-3/+0
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-05strncpy.3: Deprecate strncpy(3) in favor of stpncpy(3)Alejandro Colomar1-6/+15
It is equivalent, but reports truncation. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-04strncpy.3: Move description of valid use upAlejandro Colomar1-8/+9
To make it more visible; and refer CAVEATS to still discourage its use. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-04strncpy.3: CAVEATS: It can't detect truncationAlejandro Colomar1-0/+7
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-04strncpy.3: ffixAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-04strncpy.3: Fix TH, and add myself to copyrightAlejandro Colomar1-2/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-04strcpy.3, strncpy.3: Split the page and document them separatelyAlejandro Colomar2-118/+122
strncpy(3) is completely unrelated to strcpy(3). Rewrite its documentation to be more explicit about this. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-04cpow.3: tfixAlejandro Colomar1-1/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blättermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-04wcsspn.3: NAME: Fix summary-descriptionAlejandro Colomar1-2/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blättermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-04towctrans.3: wfixAlejandro Colomar1-1/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blättermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-04Many pages: wfixAlejandro Colomar212-287/+287
Refer consistently to software versions. In most cases, it is done as <software> <version>. In the case of Linux and glibc, use the project name, instead of other terms such as 'kernel' or 'library'. I found the uses of inconsistent language with the following: $ find man* -type f \ | xargs grep -i '\(since\|before\|after\|until\|to\|from\|in\|between\|version\|with\) \(kernel\|version\|2\.\|3\.\|4\.\|5\.\)' \ | sort However, I might have missed some cases. Anyway, 99% consistency is pretty good consistency. We'll fix the remaining cases as we see them. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-04mq_close.3: tfixAlejandro Colomar1-1/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blättermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-04malloc.3: ffixAlejandro Colomar1-1/+3
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blättermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-04iswctype.3: wfixAlejandro Colomar1-1/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blättermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-04errno.3: wfixAlejandro Colomar1-1/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blättermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-12-02_Static_assert.3, static_assert.3: Add documentation for static_assert()Alejandro Colomar2-0/+119
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-11-28confstr.3: srcfixJakub Wilk1-1/+1
At least on Debian systems, there's no "confstr" in the info directory node, so the command "info confstr" either fails with: info: No menu item 'confstr' in node '(dir)Top' or shows you this very man page. Signed-off-by: Jakub Wilk <jwilk@jwilk.net> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-11-22sendfile.2, vfork.2, alloca.3, getcontext.3, tmpfs.5, ttytype.5, spufs.7: ffixAlejandro Colomar2-3/+7
Break lines containing two man page references into a line for each. This is not only more consistent with our guidelines (man-pages(7)); it also helps prepare for the future adoption of the MR man(7) macro. Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-11-12_Generic.3: EXAMPLES: Add sockaddr_cast() macroAlejandro Colomar1-1/+90
This macro is an example of how C++-style casts can be implemented in C. They are better than C's casts because they only allow certain conversions, while disallowing most. This adds considerable type safety. They also make code more greppable. A macro similar to const_cast() can also be implemented in a similar manner: /* This code is in the public domain. */ #define qual_cast(t, p) \ _Generic(typeof_unqual(&*(p)), \ typeof_unqual(t): \ _Generic(&*(p), \ const t: (t) (p), \ volatile t: (t) (p), \ const volatile t: (t) (p), \ default: (p)) \ default: \ (p) \ ) Note that typeof_unqual() is yet unsupported by GCC and Clang, and will be added to C23. Similar behavior can be achieved by combining GNU builtins. Cc: Andrew Clayton <andrew@digital-domain.net> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-11-11memmem.3: Add list of known systems where this is availableAndrew Clayton1-1/+4
While looking at which systems provide memmem(3) I have been able to discern the following: musl libc since v0.9.7 (2012) bionic since Android 9 (2018) FreeBSD since 6.0 (2005) OpenBSD since 5.4 (2013) NetBSD macOS Illumos For macOS and Illumos I checked the memmem(3) man page on those systems. For the rest there are links below to on-line man pages or commit logs. Where I could determine what version memmem(3) was introduced, I've noted that in the man page. Link: <http://git.musl-libc.org/cgit/musl/commit/src/string/memmem.c?id=c86f2974e2acd330be2d587173dd4dd56db82e22> Link: <https://android.googlesource.com/platform/bionic/+/android-9.0.0_r3/libc/bionic/memmem.cpp> Link: <https://www.freebsd.org/cgi/man.cgi?query=memmem&sektion=3&format=html> Link: <https://man.openbsd.org/memmem.3> Link: <https://anonhg.netbsd.org/src/diff/96a37d536271/common/lib/libc/string/memmem.c> Suggested-by: Alejandro Colomar <alx@kernel.org> Signed-off-by: Andrew Clayton <andrew@digital-domain.net> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-11-10Various pages: SYNOPSIS: Use VLA syntax in 'void *' function parametersAlex Colomar28-65/+89
Use VLA syntax also for void *, even if it's a bit more weird. Link: <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2611.htm> Cc: Ingo Schwarze <schwarze@openbsd.org> Cc: JeanHeyd Meneide <wg14@soasis.org> Cc: Martin Uecker <uecker@tugraz.at> Cc: <gcc@gcc.gnu.org> Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-11-10Various pages: SYNOPSIS: Use VLA syntax in function parametersAlejandro Colomar72-147/+186
The WG14 charter for C23 added one principle to the ones in previous standards: [ 15. Application Programming Interfaces (APIs) should be self-documenting when possible. In particular, the order of parameters in function declarations should be arranged such that the size of an array appears before the array. The purpose is to allow Variable-Length Array (VLA) notation to be used. This not only makes the code's purpose clearer to human readers, but also makes static analysis easier. Any new APIs added to the Standard should take this into consideration. ] ISO C doesn't allow using VLA syntax when the parameter used for the size of the array is declared _after_ the parameter that is a VLa. That's a minor issue that could be easily changed in the language without backwards-compatibility issues, and in fact it seems to have been proposed, and not yet discarded, even if it's not going to change in C23. Since the manual pages SYNOPSIS are not bounded by strict C legal syntax, but we already use some "tricks" to try to convey the most information to the reader even if it might not be the most legal syntax, we can also make a small compromise in this case, using illegal syntax (at least not yet legalized) to add important information to the function prototypes. If we're lucky, compiler authors, and maybe even WG14 members, may be satisfied by the syntax used in these manual pages, and may decide to implement this feature to the language. It seems to me a sound syntax that isn't ambiguous, even if it deviates from the common pattern in C that declarations _always_ come before use. But it's a reasonable tradeoff. This change will make the contract between the programmer and the implementation clearer just by reading a prototype. For example, size_t strlcpy(char *restrict dst, const char *restrict src, size_t size); vs size_t strlcpy(char dst[restrict .size], const char *restrict src, size_t size); the second prototype above makes it clear that the 'dst' buffer will be safe from overflow, but the 'src' one clearly needs to be NUL-terminated, or it might cause UB, since nothing tells the function how long it is. Link: <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2611.htm> Cc: Ingo Schwarze <schwarze@openbsd.org> Cc: JeanHeyd Meneide <wg14@soasis.org> Cc: Martin Uecker <uecker@tugraz.at> Cc: <gcc@gcc.gnu.org> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-11-10errno.3: srcfixAlejandro Colomar1-3/+3
Reported-by: lint-man-groff - groff(1) Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-11-05Various pages: Replace noreturn by [[noreturn]]Alejandro Colomar5-9/+9
ISO C23 will declare the noreturn macro and the _Noreturn function specifier as obsolescent features. They are replaced by the C++-compatible [[noreturn]] attribute. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-10-31errno.3: tfixAlejandro Colomar1-1/+1
Reported-by: Jun Ishiguro <algon.0320@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-10-30get_nprocs.3, get_nprocs_conf.3, program_invocation_name.3, sysvipc.7: Match ↵Alejandro Colomar3-97/+97
page title with file name and NAME section Manually tweak a few pages that weren't covered by the scripts used in the 2 previous commits. On 10/30/22 23:00, G. Branden Robinson wrote: > For those to whom this change is coming as an unpleasant surprise, the > forthcoming groff 1.23.0 features an option that will reverse this > change at rendering time. > > From groff_man(7): > > -rCT=1 Capitalize titles, setting the man page title (the first > argument to .TH) in full capitals in headers and footers. > This transformation is off by default because it discards > case distinction information. > > This register can also be set in a site-local "man.local" file to force > it on for all pages. On Debian-based systems, this file is in > /etc/groff. The following line will do the trick. > > .nr CT 1 > > The groff_man_style(7) man page offers further examples of such > rendering customization. > > /usr/local/share/groff/site-tmac/man.local > Put site‐local changes and customizations into this file. > > .\" Use narrower indentation on terminals and similar. > .if n .nr IN 4n > .\" Put only one space after the end of a sentence. > .ss 12 0 \" See groff(7). > .\" Keep pages narrow even on wide terminals. > .if n .if \n[LL]>78n .nr LL 78n > .\" Ensure hyperlinks are enabled for terminals. > .nr U 1 > > On multi‐user systems, it is more considerate to users whose > preferences may differ from the administrator’s to be less > aggressive with such settings, or to permit their override > with a user‐specific man.local file. This can be achieved by > placing one or both of following requests at the end of the > site‐local file. > .soquiet \V[XDG_CONFIG_HOME]/man.local > .soquiet \V[HOME]/.man.local > However, a security‐sandboxed man(1) program may lack > permission to open such files. Cc: Ingo Schwarze <schwarze@openbsd.org> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-10-30Many pages: Use correct letter case in page titles (TH)Alejandro Colomar534-534/+534
Scripted change: $ find man* -type f \ | xargs grep -L '\.so' \ | while read f; do P=$(basename $f); T=$(grep '\.TH ' $f | cut -f2,3 -d' ' | sed 's/ /./'); p=$(echo $P | tr '[:upper:]' '[:lower:]'); t=$(echo $T | tr '[:upper:]' '[:lower:]'); Tn=$(echo $T | sed 's/\.[^.]\+$//') Pn=$(echo $P | sed 's/\.[^.]\+$//') N=$(man_section $f NAME \ | sed -n '/NAME/,/ - /p' \ | sed 's/ - .*//' \ | grep -v '^NAME$' \ | tr ', ' '\n' \ | grep -i "^$Pn$" \ | head -n1) test $P = $T \ && test -n $N \ && continue; if test "x$p" != "x$t"; then echo 1 $P $T $N; elif test -z "$N"; then echo 2 $P $T $N; else sed -i "/\.TH /s/$Tn/$N/" $f; fi; done; On 10/30/22 23:00, G. Branden Robinson wrote: > For those to whom this change is coming as an unpleasant surprise, the > forthcoming groff 1.23.0 features an option that will reverse this > change at rendering time. > > From groff_man(7): > > -rCT=1 Capitalize titles, setting the man page title (the first > argument to .TH) in full capitals in headers and footers. > This transformation is off by default because it discards > case distinction information. > > This register can also be set in a site-local "man.local" file to force > it on for all pages. On Debian-based systems, this file is in > /etc/groff. The following line will do the trick. > > .nr CT 1 > > The groff_man_style(7) man page offers further examples of such > rendering customization. > > /usr/local/share/groff/site-tmac/man.local > Put site‐local changes and customizations into this file. > > .\" Use narrower indentation on terminals and similar. > .if n .nr IN 4n > .\" Put only one space after the end of a sentence. > .ss 12 0 \" See groff(7). > .\" Keep pages narrow even on wide terminals. > .if n .if \n[LL]>78n .nr LL 78n > .\" Ensure hyperlinks are enabled for terminals. > .nr U 1 > > On multi‐user systems, it is more considerate to users whose > preferences may differ from the administrator’s to be less > aggressive with such settings, or to permit their override > with a user‐specific man.local file. This can be achieved by > placing one or both of following requests at the end of the > site‐local file. > .soquiet \V[XDG_CONFIG_HOME]/man.local > .soquiet \V[HOME]/.man.local > However, a security‐sandboxed man(1) program may lack > permission to open such files. Cc: Ingo Schwarze <schwarze@openbsd.org> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-10-30FILE.3type: Move page to correct subsectionAlejandro Colomar1-34/+0
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-10-30Change alx's email addressAlejandro Colomar8-8/+8
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-10-29Many pages: Use a consistent style for listsAlejandro Colomar49-152/+152
There are different kinds of lists: Tagged paragraphs These are fixed in a separate commit (the previous one). They are used for a list of tags and their descriptions. An example is this commit message itself. Ordered lists Elements are preceeded by a number in parentheses. These represent a set of steps that have an order. When there are substeps, they will be numbered like (4.2). Positional lists Elements are preceeded by a number in square brackets (index). These represent fields in a set. The index will start at: 0 fields of a C data structure, to be consistent with arrays. 1 fields of a file, to be consistent with tools like cut(1). Alternatives list Elements are preceeded by a letter in parentheses. These represent a set of (normally) exclusive alternatives. Bullet lists Elements are preceeded by bullet symbols. Anything that doesn't fit elsewhere usually is covered by this type of list. Notes Not really a list, but the syntax is identical to "positional lists". There should always be 2 spaces between the list symbol and the elements. This doesn't apply to "tagged paragraphs", which use the default indentation rules. Reported-by: Mike Frysinger <vapier@gentoo.org> Cc: <groff@gnu.org> Acked-by: Douglas McIlroy <douglas.mcilroy@dartmouth.edu> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-10-29Many pages: Use .TP for tagged paragraphsAlejandro Colomar8-60/+81
Reported-by: Mike Frysinger <vapier@gentoo.org> Cc: <groff@gnu.org> Acked-by: Douglas McIlroy <douglas.mcilroy@dartmouth.edu> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-10-18ferror.3: CAVEATS: Need to get EOF before calling these functionsAlejandro Colomar1-0/+14
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-10-09dist.mk, All pages: .TH: Generate date at 'make dist'Alejandro Colomar581-581/+581
Replace the date by a placeholder (date) in the repo, as we're doing with the version (unreleased). It will be filled when the tarball is generated with 'make dist' (or equivalent) with the date of the most recent git commit that modifies the page (as was done previously by update_timestamps.sh, which has been removed). Scripted change (mostly): $ find man* -type f \ | xargs sed -Ei '/^\.TH /s/.TH +([^ ]+ +[^ ]+) +[^ ]+ +(.*)/.TH \1 (date) \2/' Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-10-09getent.1, iconv.1, intro.1, ldd.1, locale.1, localedef.1, memusage.1, ↵Alejandro Colomar581-581/+581
memusagestat.1, mtrace.1, pldd.1, sprof.1, time.1, _exit.2, _syscall.2, accept.2, access.2, acct.2, add_key.2, adjtimex.2, alarm.2, alloc_hugepages.2, arch_prctl.2, bdflush.2, bind.2, bpf.2, brk.2, cacheflush.2, capget.2, chdir.2, chmod.2, chown.2, chroot.2, clock_getres.2, clock_nanosleep.2, clone.2, close.2, close_range.2, connect.2, copy_file_range.2, create_module.2, delete_module.2, dup.2, epoll_create.2, epoll_ctl.2, epoll_wait.2, eventfd.2, execve.2, execveat.2, exit_group.2, fallocate.2, fanotify_init.2, fanotify_mark.2, fcntl.2, flock.2, fork.2, fsync.2, futex.2, futimesat.2, get_kernel_syms.2, get_mempolicy.2, get_robust_list.2, getcpu.2, getdents.2, getdomainname.2, getgid.2, getgroups.2, gethostname.2, getitimer.2, getpagesize.2, getpeername.2, getpid.2, getpriority.2, getrandom.2, getresuid.2, getrlimit.2, getrusage.2, getsid.2, getsockname.2, getsockopt.2, gettid.2, gettimeofday.2, getuid.2, getunwind.2, getxattr.2, idle.2, init_module.2, inotify_add_watch.2, inotify_init.2, inotify_rm_watch.2, intro.2, io_cancel.2, io_destroy.2, io_getevents.2, io_setup.2, io_submit.2, ioctl.2, ioctl_console.2, ioctl_fat.2, ioctl_ficlonerange.2, ioctl_fideduperange.2, ioctl_fslabel.2, ioctl_getfsmap.2, ioctl_iflags.2, ioctl_ns.2, ioctl_tty.2, ioctl_userfaultfd.2, ioperm.2, iopl.2, ioprio_set.2, ipc.2, kcmp.2, kexec_load.2, keyctl.2, kill.2, landlock_add_rule.2, landlock_create_ruleset.2, landlock_restrict_self.2, link.2, listen.2, listxattr.2, llseek.2, lookup_dcookie.2, lseek.2, madvise.2, mbind.2, membarrier.2, memfd_create.2, memfd_secret.2, migrate_pages.2, mincore.2, mkdir.2, mknod.2, mlock.2, mmap.2, mmap2.2, modify_ldt.2, mount.2, mount_setattr.2, move_pages.2, mprotect.2, mq_getsetattr.2, mremap.2, msgctl.2, msgget.2, msgop.2, msync.2, nanosleep.2, nfsservctl.2, nice.2, open.2, open_by_handle_at.2, openat2.2, outb.2, pause.2, pciconfig_read.2, perf_event_open.2, perfmonctl.2, personality.2, pidfd_getfd.2, pidfd_open.2, pidfd_send_signal.2, pipe.2, pivot_root.2, pkey_alloc.2, poll.2, posix_fadvise.2, prctl.2, pread.2, process_madvise.2, process_vm_readv.2, ptrace.2, query_module.2, quotactl.2, read.2, readahead.2, readdir.2, readlink.2, readv.2, reboot.2, recv.2, recvmmsg.2, remap_file_pages.2, removexattr.2, rename.2, request_key.2, restart_syscall.2, rmdir.2, rt_sigqueueinfo.2, s390_guarded_storage.2, s390_pci_mmio_write.2, s390_runtime_instr.2, s390_sthyi.2, sched_get_priority_max.2, sched_rr_get_interval.2, sched_setaffinity.2, sched_setattr.2, sched_setparam.2, sched_setscheduler.2, sched_yield.2, seccomp.2, seccomp_unotify.2, select.2, select_tut.2, semctl.2, semget.2, semop.2, send.2, sendfile.2, sendmmsg.2, set_mempolicy.2, set_thread_area.2, set_tid_address.2, seteuid.2, setfsgid.2, setfsuid.2, setgid.2, setns.2, setpgid.2, setresuid.2, setreuid.2, setsid.2, setuid.2, setup.2, setxattr.2, sgetmask.2, shmctl.2, shmget.2, shmop.2, shutdown.2, sigaction.2, sigaltstack.2, signal.2, signalfd.2, sigpending.2, sigprocmask.2, sigreturn.2, sigsuspend.2, sigwaitinfo.2, socket.2, socketcall.2, socketpair.2, splice.2, spu_create.2, spu_run.2, stat.2, statfs.2, statx.2, stime.2, subpage_prot.2, swapon.2, symlink.2, sync.2, sync_file_range.2, syscall.2, syscalls.2, sysctl.2, sysfs.2, sysinfo.2, syslog.2, tee.2, time.2, timer_create.2, timer_delete.2, timer_getoverrun.2, timer_settime.2, timerfd_create.2, times.2, tkill.2, truncate.2, umask.2, umount.2, uname.2, unimplemented.2, unlink.2, unshare.2, uselib.2, userfaultfd.2, ustat.2, utime.2, utimensat.2, vfork.2, vhangup.2, vm86.2, vmsplice.2, wait.2, wait4.2, write.2, open_how.2type, CPU_SET.3, FILE.3, INFINITY.3, MAX.3, MB_CUR_MAX.3, MB_LEN_MAX.3, _Generic.3, __ppc_get_timebase.3, __ppc_set_ppr_med.3, __ppc_yield.3, __setfpucw.3, a64l.3, abort.3, abs.3, acos.3, acosh.3, addseverity.3, adjtime.3, aio_cancel.3, aio_error.3, aio_fsync.3, aio_init.3, aio_read.3, aio_return.3, aio_suspend.3, aio_write.3, alloca.3, argz_add.3, asin.3, asinh.3, asprintf.3, assert.3, assert_perror.3, atan.3, atan2.3, atanh.3, atexit.3, atof.3, atoi.3, backtrace.3, basename.3, bcmp.3, bcopy.3, bindresvport.3, bsd_signal.3, bsearch.3, bstring.3, bswap.3, btowc.3, btree.3, byteorder.3, bzero.3, cabs.3, cacos.3, cacosh.3, canonicalize_file_name.3, carg.3, casin.3, casinh.3, catan.3, catanh.3, catgets.3, catopen.3, cbrt.3, ccos.3, ccosh.3, ceil.3, cexp.3, cexp2.3, cfree.3, cimag.3, circleq.3, clearenv.3, clock.3, clock_getcpuclockid.3, clog.3, clog10.3, clog2.3, closedir.3, cmsg.3, confstr.3, conj.3, copysign.3, cos.3, cosh.3, cpow.3, cproj.3, creal.3, crypt.3, csin.3, csinh.3, csqrt.3, ctan.3, ctanh.3, ctermid.3, ctime.3, daemon.3, dbopen.3, des_crypt.3, difftime.3, dirfd.3, div.3, dl_iterate_phdr.3, dladdr.3, dlerror.3, dlinfo.3, dlopen.3, dlsym.3, drand48.3, drand48_r.3, duplocale.3, dysize.3, ecvt.3, ecvt_r.3, encrypt.3, end.3, endian.3, envz_add.3, erf.3, erfc.3, err.3, errno.3, error.3, ether_aton.3, euidaccess.3, exec.3, exit.3, exp.3, exp10.3, exp2.3, expm1.3, fabs.3, fclose.3, fcloseall.3, fdim.3, fenv.3, ferror.3, fexecve.3, fflush.3, ffs.3, fgetc.3, fgetgrent.3, fgetpwent.3, fgetwc.3, fgetws.3, fileno.3, finite.3, flockfile.3, floor.3, fma.3, fmax.3, fmemopen.3, fmin.3, fmod.3, fmtmsg.3, fnmatch.3, fopen.3, fopencookie.3, fpathconf.3, fpclassify.3, fpurge.3, fputwc.3, fputws.3, fread.3, frexp.3, fseek.3, fseeko.3, ftime.3, ftok.3, fts.3, ftw.3, futimes.3, fwide.3, gamma.3, gcvt.3, get_nprocs_conf.3, get_phys_pages.3, getaddrinfo.3, getaddrinfo_a.3, getauxval.3, getcontext.3, getcwd.3, getdate.3, getdirentries.3, getdtablesize.3, getentropy.3, getenv.3, getfsent.3, getgrent.3, getgrent_r.3, getgrnam.3, getgrouplist.3, gethostbyname.3, gethostid.3, getifaddrs.3, getipnodebyname.3, getline.3, getloadavg.3, getlogin.3, getmntent.3, getnameinfo.3, getnetent.3, getnetent_r.3, getopt.3, getpass.3, getprotoent.3, getprotoent_r.3, getpt.3, getpw.3, getpwent.3, getpwent_r.3, getpwnam.3, getrpcent.3, getrpcent_r.3, getrpcport.3, gets.3, getservent.3, getservent_r.3, getspnam.3, getsubopt.3, getttyent.3, getusershell.3, getutent.3, getutmp.3, getw.3, getwchar.3, glob.3, gnu_get_libc_version.3, grantpt.3, group_member.3, gsignal.3, hash.3, hsearch.3, hypot.3, iconv.3, iconv_close.3, iconv_open.3, if_nameindex.3, if_nametoindex.3, ilogb.3, index.3, inet.3, inet_net_pton.3, inet_ntop.3, inet_pton.3, initgroups.3, insque.3, intro.3, isalpha.3, isatty.3, isfdtype.3, isgreater.3, iswalnum.3, iswalpha.3, iswblank.3, iswcntrl.3, iswctype.3, iswdigit.3, iswgraph.3, iswlower.3, iswprint.3, iswpunct.3, iswspace.3, iswupper.3, iswxdigit.3, j0.3, key_setsecret.3, killpg.3, ldexp.3, lgamma.3, lio_listio.3, list.3, localeconv.3, lockf.3, log.3, log10.3, log1p.3, log2.3, logb.3, login.3, lrint.3, lround.3, lsearch.3, lseek64.3, makecontext.3, makedev.3, mallinfo.3, malloc.3, malloc_get_state.3, malloc_hook.3, malloc_info.3, malloc_stats.3, malloc_trim.3, malloc_usable_size.3, mallopt.3, matherr.3, mblen.3, mbrlen.3, mbrtowc.3, mbsinit.3, mbsnrtowcs.3, mbsrtowcs.3, mbstowcs.3, mbtowc.3, mcheck.3, memccpy.3, memchr.3, memcmp.3, memcpy.3, memfrob.3, memmem.3, memmove.3, mempcpy.3, memset.3, mkdtemp.3, mkfifo.3, mkstemp.3, mktemp.3, modf.3, mpool.3, mq_close.3, mq_getattr.3, mq_notify.3, mq_open.3, mq_receive.3, mq_send.3, mq_unlink.3, mtrace.3, nan.3, netlink.3, newlocale.3, nextafter.3, nextup.3, nl_langinfo.3, ntp_gettime.3, offsetof.3, on_exit.3, open_memstream.3, opendir.3, openpty.3, perror.3, popen.3, posix_fallocate.3, posix_madvise.3, posix_memalign.3, posix_openpt.3, posix_spawn.3, pow.3, pow10.3, printf.3, profil.3, program_invocation_name.3, psignal.3, pthread_atfork.3, pthread_attr_init.3, pthread_attr_setaffinity_np.3, pthread_attr_setdetachstate.3, pthread_attr_setguardsize.3, pthread_attr_setinheritsched.3, pthread_attr_setschedparam.3, pthread_attr_setschedpolicy.3, pthread_attr_setscope.3, pthread_attr_setsigmask_np.3, pthread_attr_setstack.3, pthread_attr_setstackaddr.3, pthread_attr_setstacksize.3, pthread_cancel.3, pthread_cleanup_push.3, pthread_cleanup_push_defer_np.3, pthread_create.3, pthread_detach.3, pthread_equal.3, pthread_exit.3, pthread_getattr_default_np.3, pthread_getattr_np.3, pthread_getcpuclockid.3, pthread_join.3, pthread_kill.3, pthread_kill_other_threads_np.3, pthread_mutex_consistent.3, pthread_mutexattr_getpshared.3, pthread_mutexattr_init.3, pthread_mutexattr_setrobust.3, pthread_rwlockattr_setkind_np.3, pthread_self.3, pthread_setaffinity_np.3, pthread_setcancelstate.3, pthread_setconcurrency.3, pthread_setname_np.3, pthread_setschedparam.3, pthread_setschedprio.3, pthread_sigmask.3, pthread_sigqueue.3, pthread_spin_init.3, pthread_spin_lock.3, pthread_testcancel.3, pthread_tryjoin_np.3, pthread_yield.3, ptsname.3, putenv.3, putgrent.3, putpwent.3, puts.3, putwchar.3, qecvt.3, qsort.3, raise.3, rand.3, random.3, random_r.3, rcmd.3, re_comp.3, readdir.3, readdir_r.3, realpath.3, recno.3, regex.3, remainder.3, remove.3, remquo.3, resolver.3, rewinddir.3, rexec.3, rint.3, round.3, rpc.3, rpmatch.3, rtime.3, rtnetlink.3, scalb.3, scalbln.3, scandir.3, scanf.3, sched_getcpu.3, seekdir.3, sem_close.3, sem_destroy.3, sem_getvalue.3, sem_init.3, sem_open.3, sem_post.3, sem_unlink.3, sem_wait.3, setaliasent.3, setbuf.3, setenv.3, setjmp.3, setlocale.3, setlogmask.3, setnetgrent.3, shm_open.3, siginterrupt.3, signbit.3, significand.3, sigpause.3, sigqueue.3, sigset.3, sigsetops.3, sigvec.3, sigwait.3, sin.3, sincos.3, sinh.3, sleep.3, slist.3, sockatmark.3, sqrt.3, stailq.3, statvfs.3, stdarg.3, stdin.3, stdio.3, stdio_ext.3, stpcpy.3, stpncpy.3, strcasecmp.3, strcat.3, strchr.3, strcmp.3, strcoll.3, strcpy.3, strdup.3, strerror.3, strfmon.3, strfromd.3, strfry.3, strftime.3, string.3, strlen.3, strnlen.3, strpbrk.3, strptime.3, strsep.3, strsignal.3, strspn.3, strstr.3, strtod.3, strtoimax.3, strtok.3, strtol.3, strtoul.3, strverscmp.3, strxfrm.3, swab.3, sysconf.3, syslog.3, system.3, sysv_signal.3, tailq.3, tan.3, tanh.3, tcgetpgrp.3, tcgetsid.3, telldir.3, tempnam.3, termios.3, tgamma.3, timegm.3, timeradd.3, tmpfile.3, tmpnam.3, toascii.3, toupper.3, towctrans.3, towlower.3, towupper.3, trunc.3, tsearch.3, ttyname.3, ttyslot.3, tzset.3, ualarm.3, ulimit.3, undocumented.3, ungetwc.3, unlocked_stdio.3, unlockpt.3, updwtmp.3, uselocale.3, usleep.3, wcpcpy.3, wcpncpy.3, wcrtomb.3, wcscasecmp.3, wcscat.3, wcschr.3, wcscmp.3, wcscpy.3, wcscspn.3, wcsdup.3, wcslen.3, wcsncasecmp.3, wcsncat.3, wcsncmp.3, wcsncpy.3, wcsnlen.3, wcsnrtombs.3, wcspbrk.3, wcsrchr.3, wcsrtombs.3, wcsspn.3, wcsstr.3, wcstoimax.3, wcstok.3, wcstombs.3, wcswidth.3, wctob.3, wctomb.3, wctrans.3, wctype.3, wcwidth.3, wmemchr.3, wmemcmp.3, wmemcpy.3, wmemmove.3, wmemset.3, wordexp.3, wprintf.3, xcrypt.3, xdr.3, y0.3, NULL.3const, sysexits.h.3head, aiocb.3type, blkcnt_t.3type, blksize_t.3type, cc_t.3type, clock_t.3type, clockid_t.3type, dev_t.3type, div_t.3type, double_t.3type, epoll_event.3type, fenv_t.3type, id_t.3type, intN_t.3type, intmax_t.3type, intptr_t.3type, iovec.3type, itimerspec.3type, lconv.3type, mode_t.3type, off_t.3type, ptrdiff_t.3type, regex_t.3type, size_t.3type, sockaddr.3type, stat.3type, time_t.3type, timer_t.3type, timespec.3type, timeval.3type, tm.3type, va_list.3type, void.3type, cciss.4, console_codes.4, cpuid.4, dsp56k.4, fd.4, full.4, fuse.4, hd.4, hpsa.4, initrd.4, intro.4, lirc.4, loop.4, lp.4, mem.4, mouse.4, msr.4, null.4, pts.4, ram.4, random.4, rtc.4, sd.4, sk98lin.4, smartpqi.4, st.4, tty.4, ttyS.4, vcs.4, veth.4, wavelan.4, acct.5, charmap.5, core.5, dir_colors.5, elf.5, filesystems.5, ftpusers.5, gai.conf.5, group.5, host.conf.5, hosts.5, hosts.equiv.5, intro.5, issue.5, locale.5, motd.5, networks.5, nologin.5, nscd.conf.5, nss.5, nsswitch.conf.5, passwd.5, proc.5, protocols.5, repertoiremap.5, resolv.conf.5, rpc.5, securetty.5, services.5, shells.5, slabinfo.5, sysfs.5, termcap.5, tmpfs.5, ttytype.5, tzfile.5, utmp.5, intro.6, address_families.7, aio.7, armscii-8.7, arp.7, ascii.7, attributes.7, boot.7, bootparam.7, bpf-helpers.7, capabilities.7, cgroup_namespaces.7, cgroups.7, charsets.7, complex.7, cp1251.7, cp1252.7, cpuset.7, credentials.7, ddp.7, environ.7, epoll.7, fanotify.7, feature_test_macros.7, fifo.7, futex.7, glob.7, hier.7, hostname.7, icmp.7, inode.7, inotify.7, intro.7, ip.7, ipc_namespaces.7, ipv6.7, iso_8859-1.7, iso_8859-10.7, iso_8859-11.7, iso_8859-13.7, iso_8859-14.7, iso_8859-15.7, iso_8859-16.7, iso_8859-2.7, iso_8859-3.7, iso_8859-4.7, iso_8859-5.7, iso_8859-6.7, iso_8859-7.7, iso_8859-8.7, iso_8859-9.7, kernel_lockdown.7, keyrings.7, koi8-r.7, koi8-u.7, landlock.7, libc.7, locale.7, mailaddr.7, man-pages.7, man.7, math_error.7, mount_namespaces.7, mq_overview.7, namespaces.7, netdevice.7, netlink.7, network_namespaces.7, nptl.7, numa.7, operator.7, packet.7, path_resolution.7, persistent-keyring.7, pid_namespaces.7, pipe.7, pkeys.7, posixoptions.7, process-keyring.7, pthreads.7, pty.7, queue.7, random.7, raw.7, regex.7, rtld-audit.7, rtnetlink.7, sched.7, sem_overview.7, session-keyring.7, shm_overview.7, sigevent.7, signal-safety.7, signal.7, sock_diag.7, socket.7, spufs.7, standards.7, suffixes.7, symlink.7, system_data_types.7, sysvipc.7, tcp.7, termio.7, thread-keyring.7, time.7, time_namespaces.7, udp.7, udplite.7, unicode.7, units.7, unix.7, uri.7, user-keyring.7, user-session-keyring.7, user_namespaces.7, utf-8.7, uts_namespaces.7, vdso.7, vsock.7, x25.7, xattr.7, iconvconfig.8, intro.8, ld.so.8, ldconfig.8, nscd.8, sln.8, tzselect.8: tstamp Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-10-08memfd_create.2, mlock.2, poll.2, select.2, fopen.3, capabilities.7: tfixŠtěpán Němec1-1/+1
Signed-off-by: Štěpán Němec <stepnem@smrk.net> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2022-09-18wcsnlen.3: Fix off-by-one errorAlex Colomar1-1/+1
Same change as in 45323bbef7fb06eec3fa210ee6c1651bbc57c38d. Cc: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-18inet_net_pton.3: tfixAlex Colomar1-1/+1
Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-15Various pages: EXAMPLES: Remove unused variablesAlex Colomar5-5/+5
Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-15Various pages: EXAMPLES: Use unsigned types for loop iteratorsAlex Colomar30-68/+70
Looping with unsigned types is safer. See the link below. When the iterators are used for accessing an array, use size_t; otherwise, use the most appropriate unsigned type, which in most cases is just 'unsigned int'. Also adjust other variables that have to interact with the iterators, to avoid comparison of integers of different signedness. Link: <https://gustedt.wordpress.com/2013/07/15/a-praise-of-size_t-and-other-unsigned-types/> Cc: Jens Gustedt <jens.gustedt@inria.fr> Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-15envz_add.3: EXAMPLES: Fix type of variableAlex Colomar1-2/+2
Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-15printf.3: SYNOPSIS: Remove incorrect headerAlex Colomar1-2/+0
Reported-by: Sam James <sam@gentoo.org> Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-13__ppc_get_timebase.3, if_nameindex.3, rtime.3: EXAMPLES: wsfixAlex Colomar3-4/+4
Reported-by: cpplint(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-13setbuf.3: Don't build example programAlex Colomar1-1/+1
The example program is invalid on purpose; don't build it. Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-13Various pages: EXAMPLES: Remove unused variablesAlex Colomar2-2/+2
Reported-by: clang-tidy(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-13Various pages: EXAMPLES: Use <err.h> functionsAlex Colomar7-70/+54
When reporting errors, prefer using conventional <err.h> functions, rather than home-made macros. Home-made macros are necessary for portable programs, so in documentation about portable functions, keep using the macros. However, in the documentation for functions that are only available in GNU/Linux and/or BSD systems, prefer <err.h>, which is available in both systems. Do the same in example programs documenting portable functions but in which we already require _GNU_SOURCE for some other reason. Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-13__ppc_get_timebase.3, __ppc_yield.3: Remove incorrect textAlex Colomar2-2/+0
This was accidentally introduced in a scripted change. Fixes: 45186a5da74285d72199744eb5d2888fe348f680 Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12Various pages: EXAMPLES: Remove unused variablesAlex Colomar13-14/+14
Reported-by: clang-tidy(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12matherr.3: EXAMPLES: Can't build programAlex Colomar1-1/+1
The documented functions don't exist anymore. Reported-by: clang(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12getsubopt.3: EXAMPLES: Fix indentationAlex Colomar1-29/+31
Fixes: 645259f4357baa3b3931ae24c79648baa155ebdf Fixes: 35facf001e3682c0bafbdd139d8cfc6a8cb2a301 Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12getpwent_r.3: EXAMPLES: Add missing includeAlex Colomar1-0/+1
Reported-by: clang(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12fopencookie.3: EXAMPLES: Remove 'else' after 'return'Alex Colomar1-5/+3
Reported-by: clang-tidy(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12encrypt.3: SYNOPSIS: Mark functions as [[deprecated]]Alex Colomar1-6/+6
These functions don't exist anymore. Reported-by: clang(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12Various pages: EXAMPLES: Sort includesAlex Colomar65-108/+117
Reported-by: clang-tidy(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12pthread_setschedparam.3: EXAMPLES: Remove trailing semicolon in macro definitionAlex Colomar1-1/+1
Reported-by: checkpatch(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12mq_getattr.3: EXAMPLES: Octal permissions are more readableAlex Colomar1-1/+1
Reported-by: checkpatch(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12Various pages: EXAMPLES: Use %s __func__Alex Colomar4-17/+18
Instead of hardcoding the function name. Reported-by: checkpatch(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12Various pages: EXAMPLES: Fix alignmentAlex Colomar21-95/+98
In some cases, add braces, for readability. Link: <https://nginx.org/en/docs/dev/development_guide.html#code_style> Reported-by: checkpatch(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12Various pages: EXAMPLES: Separate variable declarations from the function bodyAlex Colomar11-32/+50
Reported-by: checkpatch(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12rtime.3: EXAMPLES: OptimizeAlex Colomar1-1/+1
Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12bsearch.3: EXAMPLES: Use ARRAY_SIZE()Alex Colomar1-4/+4
This is more generic code, and hopefully, it will inspire other to use such a pattern. Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12bsearch.3: EXAMPLES: Separate struct and variable definitionsAlex Colomar1-3/+5
Separate struct definition from variable definition. Also use 'static' and 'const' when possible. Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-12_Generic.3: EXAMPLES: Allow taking a pointer to &my_imaxabsAlex Colomar1-4/+7
And show the pointer value in the example, and show also those of &labs and &llabs to compare. Cc: JeanHeyd Meneide <wg14@soasis.org> Cc: Florian Weimer <fweimer@redhat.com> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Ingo Schwarze <schwarze@openbsd.org> Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-10Many pages: EXAMPLES: Add wrapper comments SRC BEGIN and SRC ENDAlejandro Colomar99-3/+209
This is used by the Makefile to extract the example program. Signed-off-by: Alex Colomar <alx.manpages@gmail.com>
2022-09-09Revert "src.mk, All pages: Move man* to man/"Alejandro Colomar1664-0/+97802
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>
2022-09-05src.mk, All pages: Move man* to man/Alejandro Colomar1664-97802/+0
The root of the repository is becoming a bit overpopulated and unorganized, due to the recent addition of more mandirs, and more informative and configuration files too. Let's create a specific mandir <man/> that contains the mandirs <man[1-8]*>. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05getpw.3: SYNOPSIS: Mark as [[deprecated]]Alejandro Colomar1-1/+1
This function is insecure. Use getpwuid(3). Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05matherr.3: SYNOPSIS: Mark as [[deprecated]]Alejandro Colomar1-2/+2
This is no longer supported by glibc. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05__setfpucw.3: SYNOPSIS: Mark __setfpucw() as [[deprecated]]Alejandro Colomar1-1/+1
The function doesn't exist anymore. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05ftw.3: SYNOPSIS: Mark ftw() as [[deprecated]]Alejandro Colomar1-0/+1
Use nftw(3) instead. ftw(3) has issues with [sig]longjmp(3). Link: <https://stackoverflow.com/q/19617783/6872717> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05ulimit.3: SYNOPSIS: Mark ulimit() as [[deprecated]]Alejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05ecvt.3: SYNOPSIS: Mark as [[deprecated]]Alejandro Colomar1-4/+4
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05ecvt_r.3: SYNOPSIS: Mark as [[deprecated]]Alejandro Colomar1-10/+12
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05qecvt.3: SYNOPSIS: Mark q*cvt() as [[deprecated]]Alejandro Colomar1-7/+5
Use snprintf(3) instead. Most Unix systems lack these functions. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05ctime.3: SYNOPSIS: Use VLA notation for [as]ctime_r() bufferAlejandro Colomar1-2/+4
As N2417 (a proposal for C2x that was not accepted) suggests. This syntax is very informative, and also, if used by library implementers, can improve static analysis. Since it is backwards compatible with pointer syntax, we can do this. Also, the reason for not being accepted, as Jens noted, was incompatibility with C++. But IMO, that's not something that we should care too much. Users of other languages should know what to expect when reading C code, and are expected to know C/C++ incompatibilities. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Cc: Jens Gustedt <jens.gustedt@loria.fr> Cc: Glibc <libc-alpha@sourceware.org>
2022-09-05getpass.3: SYNOPSIS: Mark getpass() as [[deprecated]]Alejandro Colomar1-2/+7
Suggest readpassphrase(3bsd) as an alternative. Some implementations of getpass(3) may suffer from the same issues that gets(3) suffers and some more. See the long discussion in the mailing list for more details (link at the bottom of this commit message). I'll quote some relevant parts here: Eugene Syromyatnikov <evgsyr@gmail.com>: { And the only mention of getpass() in POSIX (at least, since the 2001's edition) indeed seems to be [1], in the list of functions that have not been carried forward from XSH5, the 1997 revision of “System Interfaces and Headers” (that is, SUSv2)[2], where it is inherited from SUSv1[4] from XPG[5] and, as Alejandro already mentioned, marked as obsolete, per XPG3 to XPG4 migration guide[6]; the previous, 1988, version of POSIX[3] does not mention getpass() at all. [1] https://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap01.html [2] https://pubs.opengroup.org/onlinepubs/7908799/xsh/getpass.html [3] https://mirror.math.princeton.edu/pub/oldlinux/download/c953.pdf [4] https://pubs.opengroup.org/onlinepubs/9695969499/toc.pdf [5] https://bitsavers.computerhistory.org/pdf/xOpen/X_Open_Portability_Guide_1985/xpg_2_xopen_system_v_specification_2.pdf [6] http://archive.opengroup.org/publications/archive/CDROM/g501.pdf } Theo de Raadt <deraadt@openbsd.org>: { The community finally had the balls to get rid of gets(3). getpass(3) shares the same flaw, that the buffer size isn't passed. This has been an issue in the past, and incorrectly led to readpassphrase(3). readpassphrase(3) has a few too many features/extensions for my taste, but at least it is harder to abuse. } Alejandro Colomar <alx.manpages@gmail.com>: { I found readpassphrase(3) in FreeBSD and OpenBSD. It is also present in libbsd(7), which is available in most Linux distributions. I also found it on a Mac that I have access. NetBSD has getpass_r(3) instead. It is not in any other system I have access. } Zack Weinberg <zack@owlfolio.org>: { I was about to post exactly the same thing. getpass(3) is not deprecated because there's a better replacement, it's deprecated because it's _unsafe_. The glibc implementation wraps getline(3) and therefore doesn't truncate the passphrase or overflow a fixed-size buffer, no matter how long the input is, but portable code cannot rely on that. And come to think of it, using getline(3) means that prefixes of the passphrase may be left lying around in malloc's free lists. (getpass also cannot be made thread safe, due to recycling of a static buffer, but a program in which multiple threads are racing to prompt the user for passwords would be a UX disaster anyway, so I don't think that's a critical flaw the way it is for e.g. strtok(3).) The Linux manpage project's documentation is, as I understand it, for Linux with glibc _first_, but not _only_; it should not describe this function as not-deprecated just because glibc has patched its worst problems and doesn't offer any better API. } List: <https://lore.kernel.org/linux-man/6d8642e9-71f7-4a83-9791-880d04f67d17@www.fastmail.com/T/#t> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Cc: Git <git@vger.kernel.org> Cc: Glibc <libc-alpha@sourceware.org> Cc: OpenBSD <tech@openbsd.org> Cc: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Cc: Benoit Lecocq <benoit@openbsd.org> Cc: Klemens Nanni <kn@openbsd.org> Cc: Randall <rsbecker@nexbridge.com> Cc: Eugene Syromyatnikov <evgsyr@gmail.com> Cc: Theo de Raadt <deraadt@openbsd.org> Cc: Zack Weinberg <zack@owlfolio.org> Cc: Florian Weimer <libc-alpha@sourceware.org>
2022-09-05gsignal.3: SYNOPSIS: Mark [gs]signal() as [[deprecated]]Alejandro Colomar1-2/+2
They are obsolete in other systems, and broken in glibc. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05re_comp.3: SYNOPSIS: Mark these functions as [[deprecated]]Alejandro Colomar1-2/+2
They are MT unsafe, and replaced by the MT-safe POSIX regex(3) functions. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05rexec.3: SYNOPSIS: Mark rexec*() as [[deprecated]]Alejandro Colomar1-0/+3
They are insecure, and replaced by rcmd(3). Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05toascii.3: SYNOPSIS: Mark toascii() as [[deprecated]]Alejandro Colomar1-1/+1
It cannot be used portably in a localized application. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05scalb.3: SYNOPSIS: Mark these functions as [[deprecated]]Alejandro Colomar1-3/+3
Use scalbn(3) instead. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05getcwd.3: SYNOPSIS: Use VLA notation for getwd()'s argumentAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05gethostbyname.3: Move non-deprecated functions to the topAlejandro Colomar1-15/+15
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05gethostbyname.3: SYNOPSIS: Mark several symbols as [[deprecated]]Alejandro Colomar1-6/+10
*hostent*() are the only ones that are not deprecated, AFAICS. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05bcmp.3: SYNOPSIS: Mark bcmp() as [[deprecated]]Alejandro Colomar1-1/+1
Use memcmp(3) instead. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05gets.3: SYNOPSIS: Mark gets() as [[deprecated]]Alejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05resolver.3: SYNOPSIS: Use [[deprecated]] instead of a 'Deprecated' subsectionAlejandro Colomar1-6/+8
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05perror.3: SYNOPSIS: Mark sys_errlist[] and sys_nerr as [[deprecated]]Alejandro Colomar1-2/+3
They are no longer exposed by glibc. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05getcwd.3: SYNOPSIS: Mark getwd() as [[deprecated]]Alejandro Colomar1-1/+2
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05strsignal.3: SYNOPSIS: Mark sys_siglist[] as [[deprecated]]Alejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05inet.3: SYNOPSIS: Mark inet_ntoa() as [[deprecated]]Alejandro Colomar1-1/+1
See inet_ntop(3). Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05strcpy.3: SYNOPSIS: Add missing 'restrict'Alejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05pthread_mutexattr_setrobust.3: SYNOPSIS: Mark *_np() old functions as ↵Alejandro Colomar1-0/+2
[[deprecated]] Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05readdir_r.3: SYNOPSIS: Mark as [[deprecated]]Alejandro Colomar1-2/+3
Glibc: dirent/dirent.h:183: extern int readdir_r (DIR *__restrict __dirp, struct dirent *__restrict __entry, struct dirent **__restrict __result) __nonnull ((1, 2, 3)) __attribute_deprecated__; Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05pthread_yield.3: SYNOPSIS: Mark as [[deprecated]]Alejandro Colomar1-1/+1
sched_yield(3) is identical and is in POSIX. See glibc commit c2fd60a5861efef48252f5cc7efc70e1d8a0da9a. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05getipnodebyname.3: SYNOPSIS: Mark as [[deprecated]]Alejandro Colomar1-5/+6
These functions are not anymore in glibc. All other systems call them deprecated. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05gamma.3: SYNOPSIS: Mark as [[deprecated]]Alejandro Colomar1-3/+3
These functions are misleading, and in some systems mean a different thing (tgamma(3) vs lgamma(3)). Never use gamma(3). Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05bcopy.3: SYNOPSIS: Mark as [[deprecated]]Alejandro Colomar1-1/+1
memmove(3) completely replaces bcopy(3), being an almost identical function, except for the different order in the arguments. memmove(3) is part of ISO C and POSIX. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-09-05pthread_mutex_consistent.3: Mark *_np() old function as [[deprecated]]Alejandro Colomar1-0/+1
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-30termios.3: mention the integer types in SEE ALSOнаб1-0/+3
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-26pthread_setname_np.3: Rename 'len' to 'size'Alejandro Colomar1-3/+3
The parameter doesn't represent a string length (strlen(3)), but a buffer size (sizeof()). Use a more proper name. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-25confstr.3: Rename 'len' to 'size'Alejandro Colomar1-6/+6
The parameter doesn't represent a string length (strlen(3)), but a buffer size (sizeof()). Use a more proper name. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-25Various pages: Fit rendered pages in 80 columnsAlejandro Colomar2-4/+4
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-25wcswidth.3, wcwidth.3, veth.4: Fix accidents in .THAlejandro Colomar2-2/+2
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-24_Generic.3: EXAMPLES: Use a constant expressionAlejandro Colomar1-4/+4
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-21_Generic.3: intmax_t can't be intAlejandro Colomar1-1/+0
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-21All pages: Remove the 5th argument to .THAlejandro Colomar580-581/+581
Now that we have the LIBRARY section, and a 4th argument that already tells that it's a page from the Linux man-pages project, the 5th argument isn't telling any information that the default value wouldn't. So let's just remove it. Scripted change: $ find man* -type f \ | xargs sed -Ei '/^.TH /s/(.TH +[^ ]+ +[^ ]+ +[^ ]+ +"[^"]+") .*/\1/' Acked-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Cc: Ingo Schwarze <schwarze@openbsd.de> Cc: Michael Kerrisk <mtk.manpages@gmail.com>
2022-08-21All pages: Replace the 4th argument to .TH by "Linux man-pages (unreleased)"Alejandro Colomar580-580/+580
On 8/20/22 13:57, Alejandro Colomar wrote: > On 8/20/22 07:43, G. Branden Robinson wrote: >> >> In my opinion it would benefit readers of the Linux man-pages if the >> fourth argument to `TH` were what it is in many other man pages: an >> identifier for the name and version number of the release originating >> them. In every page it would be clear what version of the man-pages was >> being viewed. Little sophistication would be demanded of the user to >> check the Web to determine the relative age of the pages, independently >> of the modification date of the particular page. Such usage would be >> congruent with the argument's purpose in AT&T and BSD Unix, where this >> datum was "7th Edition", "System III", or "4.2 Berkeley Distribution", >> or similar. > > I thought about it in the past... That field was the only thing that > said where a function came from. If we removed GNU (or something else), > how would someone know where does the function or whatever comes from?? > > I guess that's also why the colophon was appended to the pages by > Michael. Since we couldn't use the 4th field for that, we had to have a > COLOPHON section. > > However, the addition of the LIBRARY section seems to fix this issue, > and so now we have an even more precise way to determine where a given > function comes from (including the library file name, and the linker > option). > > This gives me another argument for those who don't like to have a > LIBRARY section for libc stuff (since -lc is unnecessary), and consider > it noise. > >> >> Further, as the libc-related man pages in this project expand coverage >> to other libcs than GNU's, the alternatives to the empty string >> proferred in man-pages(7) seem less and less appropriate. > > Agree. LIBRARY seems much more appropriate for that purpose. > > And this helps remove the COLOPHON section (or at least, we don't need > to autogenerate it, since the version number now comes in .TH, and the > COLOPHON is static; so I can even move it to a smaller REPORTING BUGS > section). Scripted change: $ find man* -type f \ |xargs sed -Ei '/^.TH /s/(.TH +[^ ]+ +[^ ]+ +[^ ]+) +"[^"]*"/\1 "Linux man-pages (unreleased)"/' $ find man* -type f \ |xargs sed -Ei '/^.TH /s/(.TH +[^ ]+ +[^ ]+ +[^ ]+) +[^" ]+/\1 "Linux man-pages (unreleased)"/' $ git restore man5/tzfile.5 $ git restore man8/zdump.8 $ git restore man8/zic.8 $ git restore man7/bpf-helpers.7 Link: <https://lore.kernel.org/linux-man/20220819180323.dbsgxh5qvcjabjm6@jwilk.net/T/#u> Reported-by: Jakub Wilk <jwilk@jwilk.net> Reported-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Cc: Ingo Schwarze <schwarze@openbsd.de> Cc: Michael Kerrisk <mtk.manpages@gmail.com>
2022-08-21_Generic.3: New page documenting _Generic()Alejandro Colomar1-0/+60
Also add a hint of how intmax(3) and other functions using [u]intmax_t types could be better defined by ISO C, by requiring that they're implemented as type-generic macros, to avoid having problems with the ABI. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Cc: JeanHeyd Meneide <wg14@soasis.org> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Ingo Schwarze <schwarze@openbsd.de>
2022-08-15getaddrinfo_a.3: actually gnu.cz => gnu.orgнаб1-2/+2
Fixes: a2feb3e14f51a0e74daeb6f0217887ca31799967 ("getaddrinfo_a.3: gnu.cz => gnu.org") Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-15getaddrinfo_a.3: {ftp.us => mirrors}.kernel.org, likewise for IPнаб1-6/+6
Make the address consistent between 128.30.2.36 (some address in MIT space) and 139.178.88.99 (valid, current) ftp.us.kernel.org EAI_NONAMEs: turn it into mirrors.kernel.org, because the new text uses 139.178.88.99 which is mirrors.kernel.org Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-15getaddrinfo_a.3: gnu.cz => gnu.orgнаб1-4/+4
gnu.cz exists at a different address (but is unreachable there), and the address we had is an unassigned coolhousing one Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-15getline.3: wfix.enh1-0/+5
Clarify in the RETURN VALUE section that it's necessary to free the buffer, since at least one person missed this up at the start of the DESCRIPTION. Signed-off-by: Elliott Hughes <enh@google.com> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-15getline.3: srcfix.enh1-8/+8
Signed-off-by: Elliott Hughes <enh@google.com> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-02argz_add.3: srcfixAlejandro Colomar1-1/+1
mandoc: man3/argz_add.3:20:77: STYLE: unterminated quoted argument Reported-by: 'make lint-man' Reported-by: mandoc(1) Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-02getgrent_r.3, psignal.3: ffixAlejandro Colomar2-0/+4
Reported-by: 'make lint-man' Reported-by: groff(1) Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-01__setfpucw.3: ffixAlejandro Colomar1-3/+10
an.tmac:man3/__setfpucw.3:58: style: 5 leading space(s) on input line an.tmac:man3/__setfpucw.3:59: style: 5 leading space(s) on input line an.tmac:man3/__setfpucw.3:60: style: 5 leading space(s) on input line Reported-by: 'make lint-man' Reported-by: groff(1) Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-01__setfpucw.3: pfixAlejandro Colomar1-3/+3
\- is unnecessary here. As a list enumerator, any character is good. Simplify. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-08-01byteorder.3: STANDARDS: SimplifyAlejandro Colomar1-5/+0
No current systems require the inclusion of <netinet/in.h> anymore. POSIX.1-2001 has been around for more than 20 years, so let's simplify. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-29Many pages: Use STANDARDS instead of CONFORMING TOAlejandro Colomar563-564/+564
STANDARDS seems to be much more extended than CONFORMING TO. For consistency across the whole manual pages corpus, let's try to unify, by following the most commonly used section name. On 7/27/22 12:49, Ingo Schwarze wrote: > Alejandro Colomar wrote on Tue, Jul 26, 2022 at 02:02:56PM +0200: > > We use CONFORMING TO in Linux. Don't know why; just history, I guess. > > See man-pages(7). > > Weird. > > I failed to find a single instance of "CONFORMING TO" in AT&T UNIX > (including v6, PWB, v7, 32v, v8, v10, System III, SVR1, SVR2) nor in > any version of UCB CSRG BSD. So considering that System V and BSD are > widely considered the two main original branches of the development > of Unix-like operating systems and Linux is often considered to have > drawn inspiration from both, the section name "CONFORMING TO" does > not appear to be a UNIX thing. For example, Aeleen Frisch, "Essential > System Administration", O'Reilly, Cambridge 1995, considers Linux > as slightly more influenced by 4.3BSD than by System V Release 3. > > STANDARDS, on the other hand, is present since 4.3BSD-Reno (June 1990). > > 4.3BSD-Reno predates the first version of the Linux kernel by more than > a year, and the first Linux manual pages probably for longer than that. > > So i have no idea where "CONFORMING TO" may have come from. Scripted change: $ find man* -type f | xargs sed -i 's/CONFORMING TO/STANDARDS/' plus a few manual fixes to the following files: - man2/getrlimit.2 - man3/syslog.3 - scripts/bash_aliases Reported-by: Ingo Schwarze <schwarze@openbsd.org> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-26strsignal.3: fix str(d)abbrev typoнаб1-2/+2
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-21Many pages: Use man3type/ and man2type/ for type pagesAlejandro Colomar72-2005/+0
Quoting Ingo: [ The mandoc(1) program is also able to handle paths like "man3/id_t.3type". It will consider that page to be *both* in section "3" (as specified by the directory name) and in section "3type" (as specified by the file name and by the .TH macro). I would consider it better style to keep section names consistent, i.e. to use either "man3/id_t.3" .TH id_t 3 or "man3type/id_t.3type" .TH id_t 3type, but it's not a big deal: since many systems (in particular various Linux distros) suffer from such inconsistencies, handling such inconsistencies gracefully is an important feature that certainly won't get removed. ] Let's be nice, and do things right here, in the hope that others may follow the example. === Most of this patch has been scripted: $ mkdir man2type man3type $ find man2 | grep type$ | while read f; do mv -t man2type $f; done $ find man3 | grep type$ | while read f; do mv -t man3type $f; done $ grep -rl man3/.*type man* | xargs sed -i 's,man3/,man3type/,' Apart from that, I adapted the Makefiles, and moved va_list into the man3type subsection (it was accidentally placed in the main 3 section). Link: <https://lore.kernel.org/linux-man/YrB66rgFZqryrmpt@asta-kit.de/T/#u> Reported-by: Ingo Schwarze <schwarze@usta.de> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-21timespec.3type, system_data_types.7: Move timespec to a separate pageAlejandro Colomar1-1/+74
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-21timeval.3type, system_data_types.7: Move timeval to a separate pageAlejandro Colomar1-1/+41
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-21va_list.3, system_data_types.7: Move va_list to a separate pageAlejandro Colomar1-1/+43
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-21void.3, void.3type, system_data_types.7: Move void* to a separate pageAlejandro Colomar2-1/+76
Also fix the page to be in man3type, not in man3. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-21suseconds_t.3type, time_t.3type, useconds_t.3type, system_data_types.7: Move ↵Alejandro Colomar3-3/+115
time_t, suseconds_t, and useconds_t to a separate page Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-20ptrdiff_t.3type, size_t.3type, ssize_t.3type: Merge size_t and ssize_t into ↵Alejandro Colomar3-93/+90
a single page Since ssize_t is just the signed version of size_t, it makes sense to document them together. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-20ptrdiff_t.3type, system_data_types.7: Move ptrdiff_t to a separate pageAlejandro Colomar1-1/+48
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-20size_t.3type, system_data_types.7: Move size_t to a separate pageAlejandro Colomar1-1/+106
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-20id_t.3type: wfixAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-20loff_t.3type, off64_t.3type, off_t.3type, system_data_types.7: Move off_t ↵Alejandro Colomar3-2/+92
and off64_t to separate page, and document loff_t Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-20strftime.3, strftime_l.3: mention strftime_l() with .so linkнаб2-1/+26
POSIX.1-2008 TC2: > [CX] The strftime_l() function shall be equivalent to the strftime() function, except that the locale data used is from the locale represented by locale. > [CX] The behavior is undefined if the locale argument to strftime_l() is the special locale object LC_GLOBAL_LOCALE or is not a valid locale object handle. Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-20ctime.3: remove struct tm vestigiaнаб1-15/+0
struct tm now lives in tm.3type, and we describe both of these fields, in detail and correctly, therein Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-20tm.3type: describe tm_zone, tm_gmtoffнаб1-0/+51
FreeBSD timezone(3) is V7 char *timezone(int zone, int dst), our documentation would imply it's impossible to service this type of system portably Indeed, glibc defines them both, and they make more sense for most use-cases than trying to use the globals glibc cited for __USE_MISC, tm_zone invalidation is Debian 2.33-7 POSIX cited for XSI marking is Issue 7 TC2 CSRG CD #2 contains 4.3BSD-Tahoe with both members We currently ship an outdated (and factually misleading) version of this description in ctime.3 Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-19tm.3type: srcfixAlejandro Colomar1-1/+2
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-19tm.3type: widen member alignment to take up to const char *наб1-9/+9
This lets us take const char *tm_zone. Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-19tm.3type: align rangesнаб1-6/+6
This, to me, makes these much more readable Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-19printf.3: Note about thousands grouping and the C localeDr. Jürgen Sauermann1-0/+5
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-19tm.3type: tm_year is year minus 1900, not sinceнаб1-1/+1
Since only makes sense if the year represented is after 1900: how many years have passed since 1900 in... 1410? Also \fB the constant like elsewhere in the hunk Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-19tm.3type: tfixнаб1-1/+1
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2022-07-05fts.3: tfixнаб1-2/+2
statp -> fts_statp Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>