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/
prev 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).