当前位置: 技术问答>linux和unix
sockaddr_in结构体的问题
来源: 互联网 发布时间:2016-10-12
本文导语: 在/usr/include/netinet下的in.h中定义了 struct sockaddr_in { __SOCKADDR_COMMON (sin_); in_port_t sin_port; /* Port number. */ struct in_addr sin_addr; /* Internet address. */ /* Pad to size of `struct sockaddr'. */ ...
在/usr/include/netinet下的in.h中定义了
struct sockaddr_in
{
__SOCKADDR_COMMON (sin_);
in_port_t sin_port; /* Port number. */
struct in_addr sin_addr; /* Internet address. */
/* Pad to size of `struct sockaddr'. */
unsigned char sin_zero[sizeof (struct sockaddr) -
__SOCKADDR_COMMON_SIZE -
sizeof (in_port_t) -
sizeof (struct in_addr)];
};
我猜这个“__SOCKADDR_COMMON (sin_);”应该有sin_family之类的,想知道这个究竟是什么。
struct sockaddr_in
{
__SOCKADDR_COMMON (sin_);
in_port_t sin_port; /* Port number. */
struct in_addr sin_addr; /* Internet address. */
/* Pad to size of `struct sockaddr'. */
unsigned char sin_zero[sizeof (struct sockaddr) -
__SOCKADDR_COMMON_SIZE -
sizeof (in_port_t) -
sizeof (struct in_addr)];
};
我猜这个“__SOCKADDR_COMMON (sin_);”应该有sin_family之类的,想知道这个究竟是什么。
|
你说的对
/usr/include/bits/sockaddr.h中有如下定义:
#define __SOCKADDR_COMMON(sa_prefix)
sa_family_t sa_prefix##family
/usr/include/bits/sockaddr.h中有如下定义:
#define __SOCKADDR_COMMON(sa_prefix)
sa_family_t sa_prefix##family