POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html
Gnulib module: sys_socket
Portability problems fixed by Gnulib:
<sys/types.h> to be included first.
socklen_t on some platforms:
HP-UX 10.20, IRIX 6.5, OSF/1 4.0, Interix 3.5, BeOS.
struct iovec on some platforms:
OpenBSD 4.4.
SHUT_RD, SHUT_WR,
SHUT_RDWR macros on some platforms, despite having the shutdown
functions:
emx+gcc.
struct sockaddr_storage type does not have a member ss_family
on some platforms:
AIX 7.1.
Portability problems not fixed by Gnulib:
msg_control and
msg_controllen members of struct msghdr on some
platforms. This can be detected by the absence of the
CMSG_FIRSTHDR macro:
gnulib replacement header, old BSD