Where should ioctl() be declared? Certainly not in <sys/socket.h>. Most platforms have it in <sys/ioctl.h>. Only AIX and Solaris declare it in <unistd.h> instead. POSIX specifies it should be declared <stropts.h>, but many platforms don't have <stropts.h> (and who needs STREAMS anyway?). The de-facto standard is apparently <sys/ioctl.h>.
The ioctl() declaration is int ioctl (int, unsigned long, ...) on glibc, MacOS X, *BSD, BeOS, int ioctl (int, int, ...) on AIX, HP-UX, IRIX, OSF/1, Solaris, Cygwin, Interix. Step 1: Preparation of the documentation. 2008-10-09 Bruno Haible <[EMAIL PROTECTED]> * doc/glibc-headers/sys_ioctl.texi: New file. * doc/gnulib.texi: Include it. Changing permissions from . to 100644 *** doc/glibc-headers/sys_ioctl.texi.orig 2003-09-23 19:59:22.000000000 +0200 --- doc/glibc-headers/sys_ioctl.texi 2008-10-10 01:52:46.000000000 +0200 *************** *** 0 **** --- 1,33 ---- + @node sys/ioctl.h + @section @file{sys/ioctl.h} + + Declares the function @code{ioctl}. + + Documentation: + @itemize + @item + @ifinfo + @ref{IOCTLs,,,libc}, + @end ifinfo + @ifnotinfo + @url{http://www.gnu.org/software/libc/manual/html_node/IOCTLs.html}, + @end ifnotinfo + @item + @uref{http://www.kernel.org/doc/man-pages/online/pages/man2/ioctl.2.html,,man ioctl}. + @end itemize + + Gnulib module: --- + + Portability problems fixed by Gnulib: + @itemize + @end itemize + + Portability problems not fixed by Gnulib: + @itemize + @item + This header file is missing on some platforms: + mingw. + @item + This header file does not declare the @code{ioctl} function on some platforms: + AIX 5.1, Solaris 10. + @end itemize *** doc/gnulib.texi.orig 2008-10-10 01:54:44.000000000 +0200 --- doc/gnulib.texi 2008-10-10 01:26:58.000000000 +0200 *************** *** 2937,2942 **** --- 2937,2943 ---- * pty.h:: * resolv.h:: * shadow.h:: + * sys/ioctl.h:: * sysexits.h:: * ttyent.h:: @end menu *************** *** 2969,2974 **** --- 2970,2976 ---- @include glibc-headers/pty.texi @include glibc-headers/resolv.texi @include glibc-headers/shadow.texi + @include glibc-headers/sys_ioctl.texi @include glibc-headers/sysexits.texi @include glibc-headers/ttyent.texi *************** *** 5088,5093 **** --- 5090,5098 ---- @include glibc-functions/ioperm.texi @include glibc-functions/iopl.texi + @c @node Glibc sys/ioctl.h + @c @section Glibc @code{<sys/ioctl.h>} + @c @node Glibc sys/ipc.h @c @section Glibc Extensions to @code{<sys/ipc.h>}