在套接字编程中,
int inet_pton(int af, const char *src, void *dst);
在这个函数中为什么目标地址是void类型指针。为什么不是int或char指针? 以及如何处理这个void类型指针。 我正在以这种方式访问,这是正确的
void *buf;
int a;
inet_pton(AF_INET,ip,buf);
printf("%s",(char*)buf);
答案 0 :(得分:0)
此函数将网络地址的文本表示形式转换为IPv4或IPv6二进制地址,以便dst
指向in_addr
或in6_addr
。
这是为了支持应用程序中的网络层可以是通用的并同时处理IPv4和IPv6协议的范例。此类应用程序会将网络地址存储在足以容纳in_addr
或in6_addr
的存储空间以及地址系列中,例如:
struct generic_in_addr
{
int af;
union {
in_addr v4;
in6_addr v6;
} addr;
};
并使用相同的多协议功能,例如socket
,connect
,accept
传递网络地址及其系列和大小。
C中的通用网络编程。