int main()
{
struct addrinfo* c; //创建套接字结构
char host[1024],serv[1024];
getaddrinfo("163.com","http",NULL,&c); //取得猪厂 ip 地址及 http 端口号
int flags = NI_NUMERICSERV; //令服务显示为端口号
getnameinfo(c->ai_addr,c->ai_addrlen,host,1024,serv,1024,flags);
printf("host:%s,serv:%s\n",host,serv); //打印 ip 及端口号
freeaddrinfo(c); //事件起点,释放套接字结构 c
if(!c)
printf("c is gone\n");//如果 c 被释放了,打印“c is gone”
else
printf("c is there\n"); //如果 c 没有被释放,打印“c is there”
}
运行结果: bash-3.2$ ./a.out host:123.58.180.8,serv:80 c is there
为什么这个结构 c 明明被我 freeaddrinfo 了,还是依然阴魂不散呢?