| @node sys/socket.h | |
| @section @file{sys/socket.h} | |
| POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_socket.h.html} | |
| Gnulib module: sys_socket-h | |
| @mindex sys_socket-h | |
| Portability problems fixed by Gnulib: | |
| @itemize | |
| @item | |
| This header file is missing on some platforms: | |
| mingw, MSVC 14. | |
| @item | |
| This header file is not self-contained on some platforms: it requires | |
| @code{<sys/types.h>} to be included first. | |
| @item | |
| This header file does not define the type @code{struct iovec} on some platforms: | |
| OpenBSD 4.4. | |
| @item | |
| This header file is lacking the @code{SHUT_RD}, @code{SHUT_WR}, | |
| @code{SHUT_RDWR} macros on some platforms, despite having the @code{shutdown} | |
| functions: | |
| emx+gcc. | |
| @item | |
| The @code{struct sockaddr_storage} type does not have a member @code{ss_family} | |
| on some platforms: | |
| AIX 7.1. | |
| @item | |
| The @code{CMSG_SPACE} and @code{CMSG_LEN} macros are not provided on some | |
| platforms: | |
| OpenVMS. | |
| @item | |
| This header file does not define the @code{SO_REUSEPORT} macro on some | |
| platforms: | |
| Minix 3.1.8, Solaris 10, Cygwin, mingw, MSVC 14. | |
| @end itemize | |
| Portability problems not fixed by Gnulib: | |
| @itemize | |
| @item | |
| This header file does not declare the @code{msg_control} and | |
| @code{msg_controllen} members of @code{struct msghdr} on some | |
| platforms. This can be detected by the absence of the | |
| @code{CMSG_FIRSTHDR} macro: | |
| gnulib replacement header, old BSD | |
| @item | |
| This header file does not define the macro @code{SOCK_NONBLOCK} | |
| on some platforms: | |
| macOS 15, AIX 7.3, Solaris 10, mingw, MSVC 14. | |
| @item | |
| This header file does not define the macros @code{SOCK_CLOEXEC} and | |
| @code{MSG_CMSG_CLOEXEC} on some platforms: | |
| macOS 15, AIX 7.3, Solaris 10, mingw, MSVC 14. | |
| @item | |
| This header file does not define the macro @code{MSG_CMSG_CLOEXEC} | |
| on some platforms: | |
| Solaris 11 OmniOS. | |
| @item | |
| Although POSIX.1-2024 standardized @code{SOCK_CLOFORK} and | |
| @code{MSG_CMSG_CLOFORK}, no known platform supports them. | |
| @item | |
| This header file does not define the macro @code{SO_DOMAIN} on some platforms: | |
| macOS 15, NetBSD 10.0, AIX 7.3, Cygwin 3.5, mingw, MSVC 14. | |
| @item | |
| This header file does not define the macro @code{SO_PROTOCOL} on some platforms: | |
| macOS 15, NetBSD 10.0, AIX 7.3, Solaris 11.4, Cygwin 3.5, mingw, MSVC 14. | |
| @item | |
| This header file does not define the macro @code{MSG_NOSIGNAL} | |
| on some platforms: | |
| Solaris 10, mingw, MSVC 14. | |
| @item | |
| This header file does not define the macro @code{MSG_EOR} on some platforms: | |
| mingw, MSVC 14. | |
| @item | |
| This header file does not define the macros @code{MSG_CTRUNC} and | |
| @code{MSG_TRUNC} on some platforms: | |
| mingw. | |
| @item | |
| This header file does not define the macro @code{MSG_WAITALL} on some platforms: | |
| MSVC 14. | |
| @item | |
| This header file does not define the type @code{struct cmsghdr} and | |
| the constant @code{SCM_RIGHTS} on some platforms: | |
| mingw, MSVC 14. | |
| @item | |
| This header file does not define the constant @code{SOCK_CLOFORK} | |
| on some platforms: | |
| glibc 2.42, musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Solaris 11.3, Cygwin, mingw, MSVC, Android. | |
| @item | |
| This header file does not define the constant @code{MSG_CMSG_CLOFORK} | |
| on some platforms: | |
| glibc 2.42, musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Solaris 11.4, Cygwin, mingw, MSVC, Android. | |
| @end itemize |