Bit me in https://github.com/thecoshman/http/issues/155: musl (and, thus, bionic) takes an int! Kill the "POSIX says 'request' is int" comment; prior to Issue 7, ioctl() is shaded STREAMS, it's obsolescent in Issue 7, and gone completely in Issue 8. The POSIX interface has never been supported by Linux, and the common ioctl() interface has never existed in POSIX or the SUS. Note how the interface evolved in HISTORY. The NetBSD CVS has revision 1.1 date: 1993-03-21 10:45:37 +0100; author: cgd; state: Exp; branches: 1.1.1; Initial revision ---------------------------- revision 1.1.1.2 date: 1995-02-27 11:49:43 +0100; author: cgd; state: Exp; lines: +6 -6; from Lite ---------------------------- revision 1.1.1.1 date: 1993-03-21 10:45:37 +0100; author: cgd; state: Exp; lines: +0 -0; initial import of 386bsd-0.1 sources ---------------------------- and it's char * in 1.1.1.1 and 1.1.1.2 but ... in 1.1, so hell knows. Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@xxxxxxxxxxxxxxxxxx> --- man2/ioctl.2 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 4 deletions(-) diff --git a/man2/ioctl.2 b/man2/ioctl.2 index 6b55d47c9..d52f245c7 100644 --- a/man2/ioctl.2 +++ b/man2/ioctl.2 @@ -20,9 +20,8 @@ .SH SYNOPSIS .nf .B #include <sys/ioctl.h> .PP -.BI "int ioctl(int " fd ", unsigned long " request ", ...);" -.\" POSIX says 'request' is int, but glibc has the above -.\" See https://bugzilla.kernel.org/show_bug.cgi?id=42705 +.BI "int ioctl(int " fd ", unsigned long " request ", ...);" "\fR /* glibc, BSD */\fP" +.BI "int ioctl(int " fd ", int " request ", ...);" "\fR /* musl, other UNIX */\fP" .fi .SH DESCRIPTION The @@ -103,7 +102,52 @@ .SH VERSIONS .SH STANDARDS None. .SH HISTORY -Version\~7 AT&T UNIX. +Version\~7 AT&T UNIX has +.PD 0 +.in +4n +.nf +.BI "ioctl(int " fildes ", int " request ", struct sgttyb *" argp ); +.fi +.in +.PP +.PD +(where +.B struct sgttyb +has historically been used by +.BR stty (2) +and +.BR gtty(2), +and is polymorphic by request type (like a +.B void * +would be, if it had been available)). +.PP +SysIII documents +.I arg +without a type at all. +.PP +4.3BSD has +.PD 0 +.in +4n +.nf +.BI "ioctl(int " d ", unsigned long " request ", char *" argp ); +.fi +.in +.PP +.PD +(with +.B char * +similarly in for +.BR "void *" ). +.PP +SysVr4 has +.PD 0 +.in +4n +.nf +.BI "int ioctl(int " fildes ", int " request ", ... /* " arg " */);" +.fi +.in +.PP +.PD .SH NOTES In order to use this call, one needs an open file descriptor. Often the -- 2.39.2
Attachment:
signature.asc
Description: PGP signature