sys/un.h — definitions for UNIX domain sockets
#include <sys/un.h>
The <sys/un.h> header shall define the sockaddr_un structure, which shall include at least the following members:
sa_family_t sun_family Address family. char sun_path[size] Socket pathname storage.The sun_path member shall be the last member of the sockaddr_un structure, where size shall be an implementation-provided constant size of at least 92 bytes. This size value need not be accessible as a constant available for use in the application namespace.
The sockaddr_un structure is used to store addresses for UNIX domain sockets. Pointers to this type shall be cast by applications to struct sockaddr * for use with socket functions.
The <sys/un.h> header shall define the sa_family_t type as described in <sys/socket.h>.
The size of sun_path is required to be constant, but intentionally does not have a specified name for that constant. Historically, different implementations used different sizes. For example, 4.3 BSD used a size of 108, and 4.4 BSD used a size of 104. Since most implementations originate from BSD versions, the size is typically in the range 92 to 108. An application can deduce the size by using sizeof(((struct sockaddr_un *)0)->sun_path).
Applications should not assume a particular length for sun_path or assume that it can hold {_POSIX_PATH_MAX} bytes (256).
Although applications are required to initialize all members (including any non-standard ones) of a sockaddr_in6 structure (see <netinet/in.h>), the same is not required for the sockaddr_un structure, since historically many applications only initialized the standard members. Despite this, applications are encouraged to initialize sockaddr_un structures in a manner similar to the required initialization of sockaddr_in6 structures.
Some implementations expose a macro SUN_LEN for the size of a pathname stored in sun_path. However, this was not widely adopted, and differences on how a terminating null byte is interpreted between implementations did not make it worth standardizing.
None.
<netinet/in.h>, <sys/socket.h>
XSH bind, socket, socketpair
First released in Issue 6. Derived from the XNS, Issue 5.2 specification.
The value for {_POSIX_PATH_MAX} is updated to 256.
POSIX.1-2008, Technical Corrigendum 1, XBD/TC1-2008/0074 [355] is applied.
POSIX.1-2008, Technical Corrigendum 2, XBD/TC2-2008/0081 [934] is applied.
Austin Group Defect 561 is applied, changing the requirements for the sun_path member of the sockaddr_un structure.
return to top of page