See http://pubs.opengroup.org/onlinepubs/009696699/basedefs/sys/socket.h.html
(http://pubs.opengroup.org/onlinepubs/9699919799 is from Issue 7 - from 2013 and still the same!)
sockaddr_storage is meant to be cast to other structure types, but that contradicts the ANSI and ISO C standards aliasing rules as far as I can tell. (Objects may not be accessed through pointers to incompatible types, with the exception that anything can be accessed through the 3 char types and that the structure and its first member are interchangeable.)
I know that that practice of working with sockets existed long before C was standardised, but POSIX is supposed to conform to ISO C and actually it contradicts the standards in its manual. (Even in the newer versions of POSIX.)
Why did they make it like this in the first place? Why didn't they change it?
dl_
family functions. – Elisavetgrad