public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com>
To: Alejandro Colomar <alx.manpages@gmail.com>, linux-man@vger.kernel.org
Cc: mtk.manpages@gmail.com, libc-alpha@sourceware.org,
	Zack Weinberg <zackw@panix.com>
Subject: Re: [PATCH] Various pages: Remove unused <sys/types.h>
Date: Mon, 15 Mar 2021 08:44:39 +0100	[thread overview]
Message-ID: <8d745273-9fc9-04d2-78ef-49201efcf71a@gmail.com> (raw)
In-Reply-To: <20210314160134.127878-1-alx.manpages@gmail.com>

Hi Alex,

On 3/14/21 5:01 PM, Alejandro Colomar wrote:
> The manual pages are already inconsistent in which headers need
> to be included.  Right now, not all of the types used by a
> function have their required header included in the SYNOPSIS.
> 
> If we were to add the headers required by all of the types used by
> functions, the SYNOPSIS would grow too much.  Not only it would
> grow too much, but the information there would be less precise.
> 
> Having system_data_types(7) document each type with all the
> information about required includes is much more precise, and the
> info is centralized so that it's much easier to maintain.
> 
> So let's document only the include required for the function
> prototype, and also the ones required for the macros needed to
> call the function.
> 
> <sys/types.h> only defines types, not functions or constants, so
> it doesn't belong to man[23] (function) pages at all.
> 
> I ignore if some old systems had headers that required you to
> include <sys/types.h> *before* them (incomplete headers), but if
> so, those implementations would be broken, and those headers
> should probably provide some kind of warning.  I hope this is not
> the case.
> 
> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>

If I recall correctly, I had a conversation about this topic
with the previous maintainer, who pointed out that the need 
to include <sys/types.h> was (then) still quite current on
various implementations. But it is (by now) 20 years since
POSIX.1-2001/SUSv3 dropped the requirement to include 
<sys/types.h>  when using various APIs, so this patch seems
well past due, and I have applied it (with an Acked-by from
Zack).

Cheers,

Michael


> ---
>  man2/accept.2            |  7 -------
>  man2/bind.2              |  7 -------
>  man2/connect.2           |  7 -------
>  man2/fork.2              |  1 -
>  man2/get_robust_list.2   |  1 -
>  man2/getgid.2            |  1 -
>  man2/getgroups.2         |  1 -
>  man2/getpid.2            |  1 -
>  man2/getsid.2            |  1 -
>  man2/getsockopt.2        |  7 -------
>  man2/gettid.2            |  1 -
>  man2/getuid.2            |  1 -
>  man2/getxattr.2          |  1 -
>  man2/keyctl.2            |  1 -
>  man2/kill.2              |  1 -
>  man2/listen.2            |  7 -------
>  man2/listxattr.2         |  1 -
>  man2/llseek.2            |  1 -
>  man2/lseek.2             |  1 -
>  man2/mkdir.2             |  1 -
>  man2/mknod.2             |  1 -
>  man2/modify_ldt.2        |  2 --
>  man2/mq_getsetattr.2     |  1 -
>  man2/msgctl.2            | 11 ++++-------
>  man2/msgget.2            | 11 ++++-------
>  man2/msgop.2             | 11 ++++-------
>  man2/open.2              |  1 -
>  man2/open_by_handle_at.2 |  1 -
>  man2/openat2.2           |  1 -
>  man2/pidfd_open.2        |  2 --
>  man2/recv.2              |  1 -
>  man2/removexattr.2       |  1 -
>  man2/request_key.2       |  1 -
>  man2/semctl.2            |  9 +++------
>  man2/semget.2            | 11 ++++-------
>  man2/semop.2             | 11 ++++-------
>  man2/send.2              |  1 -
>  man2/seteuid.2           |  1 -
>  man2/setgid.2            |  1 -
>  man2/setpgid.2           |  1 -
>  man2/setreuid.2          |  1 -
>  man2/setsid.2            |  1 -
>  man2/setuid.2            |  1 -
>  man2/setxattr.2          |  1 -
>  man2/shmctl.2            | 10 ++++------
>  man2/socket.2            |  7 -------
>  man2/socketpair.2        |  7 -------
>  man2/statx.2             |  1 -
>  man2/vfork.2             |  1 -
>  49 files changed, 27 insertions(+), 133 deletions(-)
> 
> diff --git a/man2/accept.2 b/man2/accept.2
> index 0923ea97a..a5d642cc3 100644
> --- a/man2/accept.2
> +++ b/man2/accept.2
> @@ -43,7 +43,6 @@
>  accept, accept4 \- accept a connection on a socket
>  .SH SYNOPSIS
>  .nf
> -.BR "#include <sys/types.h>" "          /* See NOTES */"
>  .B #include <sys/socket.h>
>  .PP
>  .BI "int accept(int " sockfd ", struct sockaddr *restrict " addr ,
> @@ -319,12 +318,6 @@ of file status flags and always explicitly set all required flags on
>  the socket returned from
>  .BR accept ().
>  .SH NOTES
> -POSIX.1-2001 does not require the inclusion of
> -.IR <sys/types.h> ,
> -and this header file is not required on Linux.
> -However, some historical (BSD) implementations required this header
> -file, and portable applications are probably wise to include it.
> -.PP
>  There may not always be a connection waiting after a
>  .B SIGIO
>  is delivered or
> diff --git a/man2/bind.2 b/man2/bind.2
> index 548391f1d..e4765dde0 100644
> --- a/man2/bind.2
> +++ b/man2/bind.2
> @@ -71,7 +71,6 @@
>  bind \- bind a name to a socket
>  .SH SYNOPSIS
>  .nf
> -.BR "#include <sys/types.h>" "          /* See NOTES */"
>  .B #include <sys/socket.h>
>  .PP
>  .BI "int bind(int " sockfd ", const struct sockaddr *" addr ,
> @@ -243,12 +242,6 @@ first appeared in 4.2BSD).
>  .\" .B EISDIR
>  .\" UNIX-domain error conditions.
>  .SH NOTES
> -POSIX.1 does not require the inclusion of
> -.IR <sys/types.h> ,
> -and this header file is not required on Linux.
> -However, some historical (BSD) implementations required this header
> -file, and portable applications are probably wise to include it.
> -.PP
>  For background on the
>  .I socklen_t
>  type, see
> diff --git a/man2/connect.2 b/man2/connect.2
> index 9572676ef..013a46994 100644
> --- a/man2/connect.2
> +++ b/man2/connect.2
> @@ -69,7 +69,6 @@
>  connect \- initiate a connection on a socket
>  .SH SYNOPSIS
>  .nf
> -.BR "#include <sys/types.h>" "          /* See NOTES */"
>  .B #include <sys/socket.h>
>  .PP
>  .BI "int connect(int " sockfd ", const struct sockaddr *" addr ,
> @@ -276,12 +275,6 @@ first appeared in 4.2BSD).
>  .\" It also
>  .\" documents many additional error conditions not described here.
>  .SH NOTES
> -POSIX.1 does not require the inclusion of
> -.IR <sys/types.h> ,
> -and this header file is not required on Linux.
> -However, some historical (BSD) implementations required this header
> -file, and portable applications are probably wise to include it.
> -.PP
>  For background on the
>  .I socklen_t
>  type, see
> diff --git a/man2/fork.2 b/man2/fork.2
> index 894a628cc..344b9f6eb 100644
> --- a/man2/fork.2
> +++ b/man2/fork.2
> @@ -41,7 +41,6 @@
>  fork \- create a child process
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <unistd.h>
>  .PP
>  .B pid_t fork(void);
> diff --git a/man2/get_robust_list.2 b/man2/get_robust_list.2
> index b1ae42dbd..ac73bfab0 100644
> --- a/man2/get_robust_list.2
> +++ b/man2/get_robust_list.2
> @@ -33,7 +33,6 @@ get_robust_list, set_robust_list \- get/set list of robust futexes
>  .SH SYNOPSIS
>  .nf
>  .B #include <linux/futex.h>
> -.B #include <sys/types.h>
>  .B #include <syscall.h>
>  .PP
>  .BI "long get_robust_list(int " pid ", struct robust_list_head **" head_ptr ,
> diff --git a/man2/getgid.2 b/man2/getgid.2
> index e0c802e36..4c2ec6163 100644
> --- a/man2/getgid.2
> +++ b/man2/getgid.2
> @@ -28,7 +28,6 @@ getgid, getegid \- get group identity
>  .SH SYNOPSIS
>  .nf
>  .B #include <unistd.h>
> -.B #include <sys/types.h>
>  .PP
>  .B gid_t getgid(void);
>  .B gid_t getegid(void);
> diff --git a/man2/getgroups.2 b/man2/getgroups.2
> index ffe01fbb1..a90894b8a 100644
> --- a/man2/getgroups.2
> +++ b/man2/getgroups.2
> @@ -34,7 +34,6 @@
>  getgroups, setgroups \- get/set list of supplementary group IDs
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <unistd.h>
>  .PP
>  .BI "int getgroups(int " size ", gid_t " list []);
> diff --git a/man2/getpid.2 b/man2/getpid.2
> index f2bf232ca..b2574c4c3 100644
> --- a/man2/getpid.2
> +++ b/man2/getpid.2
> @@ -27,7 +27,6 @@
>  getpid, getppid \- get process identification
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <unistd.h>
>  .PP
>  .B pid_t getpid(void);
> diff --git a/man2/getsid.2 b/man2/getsid.2
> index 11d096a1a..805ffe0bd 100644
> --- a/man2/getsid.2
> +++ b/man2/getsid.2
> @@ -29,7 +29,6 @@
>  getsid \- get session ID
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <unistd.h>
>  .PP
>  .BI "pid_t getsid(pid_t" " pid" );
> diff --git a/man2/getsockopt.2 b/man2/getsockopt.2
> index 9b2c6cc3d..8011a4b5a 100644
> --- a/man2/getsockopt.2
> +++ b/man2/getsockopt.2
> @@ -46,7 +46,6 @@
>  getsockopt, setsockopt \- get and set options on sockets
>  .SH SYNOPSIS
>  .nf
> -.BR "#include <sys/types.h>" "          /* See NOTES */"
>  .B #include <sys/socket.h>
>  .PP
>  .BI "int getsockopt(int " sockfd ", int " level ", int " optname ,
> @@ -179,12 +178,6 @@ SVr4, 4.4BSD (these system calls first appeared in 4.2BSD).
>  .\" .BR SO_SNDLOWAT ", " SO_RCVLOWAT ", " SO_SNDTIMEO ", " SO_RCVTIMEO
>  .\" options
>  .SH NOTES
> -POSIX.1 does not require the inclusion of
> -.IR <sys/types.h> ,
> -and this header file is not required on Linux.
> -However, some historical (BSD) implementations required this header
> -file, and portable applications are probably wise to include it.
> -.PP
>  For background on the
>  .I socklen_t
>  type, see
> diff --git a/man2/gettid.2 b/man2/gettid.2
> index 60780e2b7..13313caa4 100644
> --- a/man2/gettid.2
> +++ b/man2/gettid.2
> @@ -30,7 +30,6 @@ gettid \- get thread identification
>  .nf
>  .B #define _GNU_SOURCE
>  .B #include <unistd.h>
> -.B #include <sys/types.h>
>  .PP
>  .B pid_t gettid(void);
>  .fi
> diff --git a/man2/getuid.2 b/man2/getuid.2
> index 6c2768643..e374d21ab 100644
> --- a/man2/getuid.2
> +++ b/man2/getuid.2
> @@ -29,7 +29,6 @@ getuid, geteuid \- get user identity
>  .SH SYNOPSIS
>  .nf
>  .B #include <unistd.h>
> -.B #include <sys/types.h>
>  .PP
>  .B uid_t getuid(void);
>  .B uid_t geteuid(void);
> diff --git a/man2/getxattr.2 b/man2/getxattr.2
> index d7a92f901..d63e45bd2 100644
> --- a/man2/getxattr.2
> +++ b/man2/getxattr.2
> @@ -28,7 +28,6 @@ getxattr, lgetxattr, fgetxattr \- retrieve an extended attribute value
>  .SH SYNOPSIS
>  .fam C
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/xattr.h>
>  .PP
>  .BI "ssize_t getxattr(const char *" path ", const char *" name ,
> diff --git a/man2/keyctl.2 b/man2/keyctl.2
> index 99cb65e19..a6daafe7a 100644
> --- a/man2/keyctl.2
> +++ b/man2/keyctl.2
> @@ -30,7 +30,6 @@
>  keyctl \- manipulate the kernel's key management facility
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <keyutils.h>
>  .PP
>  .BI "long keyctl(int " operation ", ...);"
> diff --git a/man2/kill.2 b/man2/kill.2
> index b6fa289ab..9b27726d7 100644
> --- a/man2/kill.2
> +++ b/man2/kill.2
> @@ -46,7 +46,6 @@
>  kill \- send signal to a process
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <signal.h>
>  .PP
>  .BI "int kill(pid_t " pid ", int " sig );
> diff --git a/man2/listen.2 b/man2/listen.2
> index 7c944ff4c..5e12bc756 100644
> --- a/man2/listen.2
> +++ b/man2/listen.2
> @@ -47,7 +47,6 @@
>  listen \- listen for connections on a socket
>  .SH SYNOPSIS
>  .nf
> -.BR "#include <sys/types.h>" "          /* See NOTES */"
>  .B #include <sys/socket.h>
>  .PP
>  .BI "int listen(int " sockfd ", int " backlog );
> @@ -140,12 +139,6 @@ Connections are accepted with
>  .BR accept (2).
>  .RE
>  .PP
> -POSIX.1 does not require the inclusion of
> -.IR <sys/types.h> ,
> -and this header file is not required on Linux.
> -However, some historical (BSD) implementations required this header
> -file, and portable applications are probably wise to include it.
> -.PP
>  The behavior of the
>  .I backlog
>  argument on TCP sockets changed with Linux 2.2.
> diff --git a/man2/listxattr.2 b/man2/listxattr.2
> index f073c5409..03595a9e6 100644
> --- a/man2/listxattr.2
> +++ b/man2/listxattr.2
> @@ -29,7 +29,6 @@ listxattr, llistxattr, flistxattr \- list extended attribute names
>  .SH SYNOPSIS
>  .fam C
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/xattr.h>
>  .PP
>  .BI "ssize_t listxattr(const char *" path ", char *" list \
> diff --git a/man2/llseek.2 b/man2/llseek.2
> index a46ce370e..81bb4e19f 100644
> --- a/man2/llseek.2
> +++ b/man2/llseek.2
> @@ -31,7 +31,6 @@
>  _llseek \- reposition read/write file offset
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <unistd.h>
>  .PP
>  .BI "int _llseek(unsigned int " fd ", unsigned long " offset_high ,
> diff --git a/man2/lseek.2 b/man2/lseek.2
> index ad5526b66..042479833 100644
> --- a/man2/lseek.2
> +++ b/man2/lseek.2
> @@ -48,7 +48,6 @@
>  lseek \- reposition read/write file offset
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <unistd.h>
>  .PP
>  .BI "off_t lseek(int " fd ", off_t " offset ", int " whence );
> diff --git a/man2/mkdir.2 b/man2/mkdir.2
> index 6934e331a..640a4783d 100644
> --- a/man2/mkdir.2
> +++ b/man2/mkdir.2
> @@ -14,7 +14,6 @@ mkdir, mkdirat \- create a directory
>  .SH SYNOPSIS
>  .nf
>  .B #include <sys/stat.h>
> -.B #include <sys/types.h>
>  .\" .B #include <unistd.h>
>  .PP
>  .BI "int mkdir(const char *" pathname ", mode_t " mode );
> diff --git a/man2/mknod.2 b/man2/mknod.2
> index fad459d8c..9ecf6611b 100644
> --- a/man2/mknod.2
> +++ b/man2/mknod.2
> @@ -17,7 +17,6 @@
>  mknod, mknodat \- create a special or ordinary file
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/stat.h>
>  .B #include <fcntl.h>
>  .B #include <unistd.h>
> diff --git a/man2/modify_ldt.2 b/man2/modify_ldt.2
> index 7dc12be8e..c40dae62b 100644
> --- a/man2/modify_ldt.2
> +++ b/man2/modify_ldt.2
> @@ -27,8 +27,6 @@
>  modify_ldt \- get or set a per-process LDT entry
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
> -.PP
>  .BI "int modify_ldt(int " func ", void *" ptr ", unsigned long " bytecount );
>  .fi
>  .PP
> diff --git a/man2/mq_getsetattr.2 b/man2/mq_getsetattr.2
> index 409dfe11c..5036428d6 100644
> --- a/man2/mq_getsetattr.2
> +++ b/man2/mq_getsetattr.2
> @@ -27,7 +27,6 @@
>  mq_getsetattr \- get/set message queue attributes
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <mqueue.h>
>  .PP
>  .BI "int mq_getsetattr(mqd_t " mqdes ", const struct mq_attr *" newattr ,
> diff --git a/man2/msgctl.2 b/man2/msgctl.2
> index 1e27871ad..58e8cb29e 100644
> --- a/man2/msgctl.2
> +++ b/man2/msgctl.2
> @@ -40,7 +40,6 @@
>  msgctl \- System V message control operations
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/ipc.h>
>  .B #include <sys/msg.h>
>  .PP
> @@ -407,17 +406,15 @@ POSIX.1-2001, POSIX.1-2008, SVr4.
>  .\" SVID does not document the EIDRM error condition.
>  .SH NOTES
>  The inclusion of
> -.I <sys/types.h>
> -and
>  .I <sys/ipc.h>
>  isn't required on Linux or by any version of POSIX.
>  However,
> -some old implementations required the inclusion of these header files,
> -and the SVID also documented their inclusion.
> +some old implementations required the inclusion of this header file,
> +and the SVID also documented its inclusion.
>  Applications intended to be portable to such old systems may need
> -to include these header files.
> +to include this header file.
>  .\" Like Linux, the FreeBSD man pages still document
> -.\" the inclusion of these header files.
> +.\" the inclusion of this header file.
>  .PP
>  The
>  .BR IPC_INFO ,
> diff --git a/man2/msgget.2 b/man2/msgget.2
> index 7326c9044..8959797eb 100644
> --- a/man2/msgget.2
> +++ b/man2/msgget.2
> @@ -37,7 +37,6 @@
>  msgget \- get a System V message queue identifier
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/ipc.h>
>  .B #include <sys/msg.h>
>  .PP
> @@ -190,17 +189,15 @@ would be exceeded.
>  POSIX.1-2001, POSIX.1-2008, SVr4.
>  .SH NOTES
>  The inclusion of
> -.I <sys/types.h>
> -and
>  .I <sys/ipc.h>
>  isn't required on Linux or by any version of POSIX.
>  However,
> -some old implementations required the inclusion of these header files,
> -and the SVID also documented their inclusion.
> +some old implementations required the inclusion of this header file,
> +and the SVID also documented its inclusion.
>  Applications intended to be portable to such old systems may need
> -to include these header files.
> +to include this header file.
>  .\" Like Linux, the FreeBSD man pages still document
> -.\" the inclusion of these header files.
> +.\" the inclusion of this header file.
>  .PP
>  .B IPC_PRIVATE
>  isn't a flag field but a
> diff --git a/man2/msgop.2 b/man2/msgop.2
> index ef66eb10d..92cc94549 100644
> --- a/man2/msgop.2
> +++ b/man2/msgop.2
> @@ -42,7 +42,6 @@
>  msgrcv, msgsnd \- System V message queue operations
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/ipc.h>
>  .B #include <sys/msg.h>
>  .PP
> @@ -482,17 +481,15 @@ their definitions can be obtained by defining the
>  feature test macro.
>  .SH NOTES
>  The inclusion of
> -.I <sys/types.h>
> -and
>  .I <sys/ipc.h>
>  isn't required on Linux or by any version of POSIX.
>  However,
> -some old implementations required the inclusion of these header files,
> -and the SVID also documented their inclusion.
> +some old implementations required the inclusion of this header file,
> +and the SVID also documented its inclusion.
>  Applications intended to be portable to such old systems may need
> -to include these header files.
> +to include this header file.
>  .\" Like Linux, the FreeBSD man pages still document
> -.\" the inclusion of these header files.
> +.\" the inclusion of this header file.
>  .PP
>  The
>  .I msgp
> diff --git a/man2/open.2 b/man2/open.2
> index 267e79656..3b853d8e2 100644
> --- a/man2/open.2
> +++ b/man2/open.2
> @@ -53,7 +53,6 @@
>  open, openat, creat \- open and possibly create a file
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/stat.h>
>  .B #include <fcntl.h>
>  .PP
> diff --git a/man2/open_by_handle_at.2 b/man2/open_by_handle_at.2
> index 09349066d..4ae0f0577 100644
> --- a/man2/open_by_handle_at.2
> +++ b/man2/open_by_handle_at.2
> @@ -29,7 +29,6 @@ for a pathname and open file via a handle
>  .SH SYNOPSIS
>  .nf
>  .BR "#define _GNU_SOURCE" "         /* See feature_test_macros(7) */"
> -.B #include <sys/types.h>
>  .B #include <sys/stat.h>
>  .B #include <fcntl.h>
>  .PP
> diff --git a/man2/openat2.2 b/man2/openat2.2
> index 739ac4747..ff0ff839f 100644
> --- a/man2/openat2.2
> +++ b/man2/openat2.2
> @@ -26,7 +26,6 @@
>  openat2 \- open and possibly create a file (extended)
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/stat.h>
>  .B #include <fcntl.h>
>  .B #include <linux/openat2.h>
> diff --git a/man2/pidfd_open.2 b/man2/pidfd_open.2
> index b25b74273..5601f8005 100644
> --- a/man2/pidfd_open.2
> +++ b/man2/pidfd_open.2
> @@ -27,8 +27,6 @@
>  pidfd_open \- obtain a file descriptor that refers to a process
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
> -.PP
>  .BI "int pidfd_open(pid_t " pid ", unsigned int " flags );
>  .fi
>  .PP
> diff --git a/man2/recv.2 b/man2/recv.2
> index 3a501f9ad..e6005e8d6 100644
> --- a/man2/recv.2
> +++ b/man2/recv.2
> @@ -43,7 +43,6 @@
>  recv, recvfrom, recvmsg \- receive a message from a socket
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/socket.h>
>  .PP
>  .BI "ssize_t recv(int " sockfd ", void *" buf ", size_t " len ", int " flags );
> diff --git a/man2/removexattr.2 b/man2/removexattr.2
> index 6ef3349e6..175494010 100644
> --- a/man2/removexattr.2
> +++ b/man2/removexattr.2
> @@ -28,7 +28,6 @@ removexattr, lremovexattr, fremovexattr \- remove an extended attribute
>  .SH SYNOPSIS
>  .fam C
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/xattr.h>
>  .PP
>  .BI "int removexattr(const char\ *" path ", const char\ *" name );
> diff --git a/man2/request_key.2 b/man2/request_key.2
> index 89bde01c3..7efa6ee46 100644
> --- a/man2/request_key.2
> +++ b/man2/request_key.2
> @@ -14,7 +14,6 @@
>  request_key \- request a key from the kernel's key management facility
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <keyutils.h>
>  .PP
>  .BI "key_serial_t request_key(const char *" type ", const char *" description ,
> diff --git a/man2/semctl.2 b/man2/semctl.2
> index a99c6fb87..2b75341d7 100644
> --- a/man2/semctl.2
> +++ b/man2/semctl.2
> @@ -44,7 +44,6 @@
>  semctl \- System V semaphore control operations
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/ipc.h>
>  .B #include <sys/sem.h>
>  .PP
> @@ -538,15 +537,13 @@ but, since Linux 2.4, the field has the type
>  .IR "unsigned\ long" .
>  .SH NOTES
>  The inclusion of
> -.I <sys/types.h>
> -and
>  .I <sys/ipc.h>
>  isn't required on Linux or by any version of POSIX.
>  However,
> -some old implementations required the inclusion of these header files,
> -and the SVID also documented their inclusion.
> +some old implementations required the inclusion of this header file,
> +and the SVID also documented its inclusion.
>  Applications intended to be portable to such old systems may need
> -to include these header files.
> +to include this header file.
>  .\" Like Linux, the FreeBSD man pages still document
>  .\" the inclusion of these header files.
>  .PP
> diff --git a/man2/semget.2 b/man2/semget.2
> index 445ac0249..b991f822f 100644
> --- a/man2/semget.2
> +++ b/man2/semget.2
> @@ -39,7 +39,6 @@
>  semget \- get a System V semaphore set identifier
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/ipc.h>
>  .B #include <sys/sem.h>
>  .fi
> @@ -221,17 +220,15 @@ SVr4, POSIX.1-2001.
>  .\" ERANGE, EFAULT.
>  .SH NOTES
>  The inclusion of
> -.I <sys/types.h>
> -and
>  .I <sys/ipc.h>
>  isn't required on Linux or by any version of POSIX.
>  However,
> -some old implementations required the inclusion of these header files,
> -and the SVID also documented their inclusion.
> +some old implementations required the inclusion of this header file,
> +and the SVID also documented its inclusion.
>  Applications intended to be portable to such old systems may need
> -to include these header files.
> +to include this header file.
>  .\" Like Linux, the FreeBSD man pages still document
> -.\" the inclusion of these header files.
> +.\" the inclusion of this header file.
>  .PP
>  .B IPC_PRIVATE
>  isn't a flag field but a
> diff --git a/man2/semop.2 b/man2/semop.2
> index ce970b577..a0595b68a 100644
> --- a/man2/semop.2
> +++ b/man2/semop.2
> @@ -37,7 +37,6 @@
>  semop, semtimedop \- System V semaphore operations
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/ipc.h>
>  .B #include <sys/sem.h>
>  .PP
> @@ -385,17 +384,15 @@ POSIX.1-2001, POSIX.1-2008, SVr4.
>  .\" SVr4 documents additional error conditions EINVAL, EFBIG, ENOSPC.
>  .SH NOTES
>  The inclusion of
> -.I <sys/types.h>
> -and
>  .I <sys/ipc.h>
>  isn't required on Linux or by any version of POSIX.
>  However,
> -some old implementations required the inclusion of these header files,
> -and the SVID also documented their inclusion.
> +some old implementations required the inclusion of this header file,
> +and the SVID also documented its inclusion.
>  Applications intended to be portable to such old systems may need
> -to include these header files.
> +to include this header file.
>  .\" Like Linux, the FreeBSD man pages still document
> -.\" the inclusion of these header files.
> +.\" the inclusion of this header file.
>  .PP
>  The
>  .I sem_undo
> diff --git a/man2/send.2 b/man2/send.2
> index 42fa5bf54..a6199922b 100644
> --- a/man2/send.2
> +++ b/man2/send.2
> @@ -42,7 +42,6 @@
>  send, sendto, sendmsg \- send a message on a socket
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/socket.h>
>  .PP
>  .BI "ssize_t send(int " sockfd ", const void *" buf ", size_t " len \
> diff --git a/man2/seteuid.2 b/man2/seteuid.2
> index 0bc20b268..f662c0838 100644
> --- a/man2/seteuid.2
> +++ b/man2/seteuid.2
> @@ -31,7 +31,6 @@
>  seteuid, setegid \- set effective user or group ID
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <unistd.h>
>  .PP
>  .BI "int seteuid(uid_t " euid );
> diff --git a/man2/setgid.2 b/man2/setgid.2
> index 728b57398..15d2348d3 100644
> --- a/man2/setgid.2
> +++ b/man2/setgid.2
> @@ -32,7 +32,6 @@
>  setgid \- set group identity
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <unistd.h>
>  .PP
>  .BI "int setgid(gid_t " gid );
> diff --git a/man2/setpgid.2 b/man2/setpgid.2
> index be17bc053..093ecd327 100644
> --- a/man2/setpgid.2
> +++ b/man2/setpgid.2
> @@ -50,7 +50,6 @@
>  setpgid, getpgid, setpgrp, getpgrp \- set/get process group
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <unistd.h>
>  .PP
>  .BI "int setpgid(pid_t " pid ", pid_t " pgid );
> diff --git a/man2/setreuid.2 b/man2/setreuid.2
> index 90ca93a9a..d0f27a6ee 100644
> --- a/man2/setreuid.2
> +++ b/man2/setreuid.2
> @@ -48,7 +48,6 @@
>  setreuid, setregid \- set real and/or effective user or group ID
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <unistd.h>
>  .PP
>  .BI "int setreuid(uid_t " ruid ", uid_t " euid );
> diff --git a/man2/setsid.2 b/man2/setsid.2
> index 38d5fb1fb..236a915ff 100644
> --- a/man2/setsid.2
> +++ b/man2/setsid.2
> @@ -34,7 +34,6 @@ setsid \- creates a session and sets the process group ID
>  .SH SYNOPSIS
>  .nf
>  .ad l
> -.B #include <sys/types.h>
>  .B #include <unistd.h>
>  .PP
>  .B pid_t setsid(void);
> diff --git a/man2/setuid.2 b/man2/setuid.2
> index d8e461552..a7669258c 100644
> --- a/man2/setuid.2
> +++ b/man2/setuid.2
> @@ -33,7 +33,6 @@
>  setuid \- set user identity
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <unistd.h>
>  .PP
>  .BI "int setuid(uid_t " uid );
> diff --git a/man2/setxattr.2 b/man2/setxattr.2
> index ebcfa4ded..dbc50e36e 100644
> --- a/man2/setxattr.2
> +++ b/man2/setxattr.2
> @@ -28,7 +28,6 @@ setxattr, lsetxattr, fsetxattr \- set an extended attribute value
>  .SH SYNOPSIS
>  .fam C
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/xattr.h>
>  .PP
>  .BI "int setxattr(const char\ *" path ", const char\ *" name ,
> diff --git a/man2/shmctl.2 b/man2/shmctl.2
> index 0d564293a..6acc0b787 100644
> --- a/man2/shmctl.2
> +++ b/man2/shmctl.2
> @@ -467,17 +467,15 @@ POSIX.1-2001, POSIX.1-2008, SVr4.
>  .\" an EIDRM error condition.
>  .SH NOTES
>  The inclusion of
> -.I <sys/types.h>
> -and
>  .I <sys/ipc.h>
>  isn't required on Linux or by any version of POSIX.
>  However,
> -some old implementations required the inclusion of these header files,
> -and the SVID also documented their inclusion.
> +some old implementations required the inclusion of this header file,
> +and the SVID also documented its inclusion.
>  Applications intended to be portable to such old systems may need
> -to include these header files.
> +to include this header file.
>  .\" Like Linux, the FreeBSD man pages still document
> -.\" the inclusion of these header files.
> +.\" the inclusion of this header file.
>  .PP
>  The
>  .BR IPC_INFO ,
> diff --git a/man2/socket.2 b/man2/socket.2
> index 2a22567c7..0c3523a2e 100644
> --- a/man2/socket.2
> +++ b/man2/socket.2
> @@ -44,7 +44,6 @@
>  socket \- create an endpoint for communication
>  .SH SYNOPSIS
>  .nf
> -.BR "#include <sys/types.h>" "          /* See NOTES */"
>  .B #include <sys/socket.h>
>  .PP
>  .BI "int socket(int " domain ", int " type ", int " protocol );
> @@ -467,12 +466,6 @@ It is generally portable to/from
>  non-BSD systems supporting clones of the BSD socket layer (including
>  System\ V variants).
>  .SH NOTES
> -POSIX.1 does not require the inclusion of
> -.IR <sys/types.h> ,
> -and this header file is not required on Linux.
> -However, some historical (BSD) implementations required this header
> -file, and portable applications are probably wise to include it.
> -.PP
>  The manifest constants used under 4.x BSD for protocol families
>  are
>  .BR PF_UNIX ,
> diff --git a/man2/socketpair.2 b/man2/socketpair.2
> index 629cf0f48..1f5c3aec2 100644
> --- a/man2/socketpair.2
> +++ b/man2/socketpair.2
> @@ -44,7 +44,6 @@
>  socketpair \- create a pair of connected sockets
>  .SH SYNOPSIS
>  .nf
> -.BR "#include <sys/types.h>" "          /* See NOTES */"
>  .B #include <sys/socket.h>
>  .PP
>  .BI "int socketpair(int " domain ", int " type ", int " protocol \
> @@ -130,12 +129,6 @@ flags in the
>  .I type
>  argument, as described in
>  .BR socket (2).
> -.PP
> -POSIX.1 does not require the inclusion of
> -.IR <sys/types.h> ,
> -and this header file is not required on Linux.
> -However, some historical (BSD) implementations required this header
> -file, and portable applications are probably wise to include it.
>  .SH SEE ALSO
>  .BR pipe (2),
>  .BR read (2),
> diff --git a/man2/statx.2 b/man2/statx.2
> index aeb3d377d..8b99fb3d2 100644
> --- a/man2/statx.2
> +++ b/man2/statx.2
> @@ -32,7 +32,6 @@
>  statx \- get file status (extended)
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <sys/stat.h>
>  .B #include <unistd.h>
>  .BR "#include <fcntl.h>           " "/* Definition of AT_* constants */"
> diff --git a/man2/vfork.2 b/man2/vfork.2
> index dbb803b66..73a8fff62 100644
> --- a/man2/vfork.2
> +++ b/man2/vfork.2
> @@ -31,7 +31,6 @@
>  vfork \- create a child process and block parent
>  .SH SYNOPSIS
>  .nf
> -.B #include <sys/types.h>
>  .B #include <unistd.h>
>  .PP
>  .B pid_t vfork(void);
> 


-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/

      parent reply	other threads:[~2021-03-15  7:44 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-14 16:01 Alejandro Colomar
2021-03-14 21:40 ` Zack Weinberg
2021-03-14 22:00   ` Michael Kerrisk (man-pages)
2021-03-15 18:25   ` Joseph Myers
2021-03-19 20:35     ` Alejandro Colomar (man-pages)
2021-03-15  7:44 ` 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=8d745273-9fc9-04d2-78ef-49201efcf71a@gmail.com \
    --to=mtk.manpages@gmail.com \
    --cc=alx.manpages@gmail.com \
    --cc=libc-alpha@sourceware.org \
    --cc=linux-man@vger.kernel.org \
    --cc=zackw@panix.com \
    /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 read-only IMAP folder(s) and NNTP newsgroup(s).