Re: [PATCH] execveat.2: srcfix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

Cheers,

Alex

---

$ 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)

[...]




-- 
Alejandro Colomar
Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/
http://www.alejandro-colomar.es/



[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux