From: "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com>
To: "Alejandro Colomar (man-pages)" <alx.manpages@gmail.com>
Cc: mtk.manpages@gmail.com, linux-man <linux-man@vger.kernel.org>
Subject: Re: [PATCH] execveat.2: srcfix
Date: Sat, 13 Feb 2021 20:15:03 +0100 [thread overview]
Message-ID: <5c13b177-241a-ef26-2c98-11e75c0a7b0e@gmail.com> (raw)
In-Reply-To: <05c94edf-b532-f2a6-0681-0b700d833e52@gmail.com>
Hi Alex,
On 2/2/21 6:43 PM, Alejandro Colomar (man-pages) wrote:
> On 12/31/20 4:26 PM, Michael Kerrisk (man-pages) wrote:
> [...]
>>
>> What do you think about the work-in-progess patch below? The following
>> may be useful for review:
>>
>> for p in $(git grep -l 'SYN' man[3-8]); do
>> echo "===================== $p"; man -l $p 2> /dev/null |
>> sed -n '/^SYNOP/,/DESCR/p' | sed '/Feat/,$d';
>> done | less
>>
>> Cheers,
>>
>> Michael
> [...]
>
> Hi Michael,
>
> I developed a function for reviewing the prototypes of all functions and
> comparing them easily against glibc and kernel sources. It's based on
> your code above. You may find it useful (I made it generic enough to be
> useful for other tasks) to include it in your .bash_aliases.
>
> [[
> EX_USAGE=64;
> function man_section()
> {
> if ! [ -v 2 ]; then
> >&2 echo "Usage: ${FUNCNAME[0]} <dir> <section>";
> return ${EX_USAGE}
> fi
>
> find "${1}" -type f \
> |xargs grep -l "\.SH ${2}" \
> |sort -V \
> |while read -r manpage; do
> <${manpage} \
> sed -n \
> -e '/^\.TH/,/^\.SH/{/^\.SH/!p}' \
> -e "/^\.SH ${2}/p" \
> -e "/^\.SH ${2}/,/^\.SH/{/^\.SH/!p}" \
> |man -P cat -l - 2>/dev/null;
> done;
> }
> ]]
>
>
> Basically, at the root of man-pages, run the code below to see all
> syscall prototypes.
Perhaps we better add something in scripts/ with all of these
aliases and functions that you find useful. Then you (and
maybe I) could . (dot) that in our .bashrc or so. Would you send
a patch?
Thanks,
Michael
> $ man_section man2 SYN \
> |less;
> ACCEPT(2) Linux Programmer's Manual
> ACCEPT(2)
>
> SYNOPSIS
> #include <sys/types.h> /* See NOTES */
> #include <sys/socket.h>
>
> int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
>
> #define _GNU_SOURCE /* See feature_test_macros(7) */
> #include <sys/socket.h>
>
> int accept4(int sockfd, struct sockaddr *addr,
> socklen_t *addrlen, int flags);
>
> Linux 2020-04-11
> ACCEPT(2)
> ACCESS(2) Linux Programmer's Manual
> ACCESS(2)
>
> SYNOPSIS
> #include <unistd.h>
>
> int access(const char *pathname, int mode);
>
> #include <fcntl.h> /* Definition of AT_* constants */
> #include <unistd.h>
>
> int faccessat(int dirfd, const char *pathname, int mode, int flags);
> /* But see C library/kernel differences, below */
>
> int faccessat2(int dirfd, const char *pathname, int mode, int flags);
>
> Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
>
> faccessat():
> Since glibc 2.10:
> _POSIX_C_SOURCE >= 200809L
> Before glibc 2.10:
> _ATFILE_SOURCE
>
> Linux 2020-12-21
> ACCESS(2)
>
> [...]
>
>
>
>
--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/
prev parent reply other threads:[~2021-02-13 19:15 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-30 21:41 [PATCH] execveat.2: srcfix Alejandro Colomar
2020-12-30 22:27 ` Michael Kerrisk (man-pages)
2020-12-30 23:28 ` Alejandro Colomar (man-pages)
2020-12-31 10:06 ` Michael Kerrisk (man-pages)
2020-12-31 12:28 ` Alejandro Colomar (man-pages)
2020-12-31 15:26 ` Michael Kerrisk (man-pages)
2020-12-31 18:55 ` Alejandro Colomar (man-pages)
2020-12-31 23:29 ` Alejandro Colomar (man-pages)
2021-01-01 11:43 ` Michael Kerrisk (man-pages)
2021-01-01 11:41 ` Michael Kerrisk (man-pages)
2021-01-01 13:49 ` Alejandro Colomar (man-pages)
2021-01-01 22:29 ` Michael Kerrisk (man-pages)
2021-01-02 16:03 ` Alejandro Colomar (man-pages)
2021-01-02 19:59 ` Michael Kerrisk (man-pages)
2021-01-02 21:40 ` Alejandro Colomar (man-pages)
2021-01-03 12:11 ` Michael Kerrisk (man-pages)
2021-01-04 12:59 ` Alejandro Colomar (man-pages)
2021-01-04 13:21 ` Michael Kerrisk (man-pages)
2021-02-02 17:43 ` Alejandro Colomar (man-pages)
2021-02-13 19:15 ` Michael Kerrisk (man-pages) [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5c13b177-241a-ef26-2c98-11e75c0a7b0e@gmail.com \
--to=mtk.manpages@gmail.com \
--cc=alx.manpages@gmail.com \
--cc=linux-man@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).