网络编程,获取IP地址问题 我在书上照抄了一段代码,是用c编写的,获取指定域名的主机的ip地址 10
我查了一下,可能导致这个错误的是指针问题,初步判定大概是在inet_ntoa()函数中的指针转换出错,但是不知道具体原因,小弟初学c网络编程,请高手指教。运行报错:Seg...
我查了一下,可能导致这个错误的是指针问题,初步判定大概是在 inet_ntoa()函数中的指针转换出错,但是不知道具体原因,小弟初学c网络编程,请高手指教。
运行报错:Segmentation fault
代码如下(我用的系统是fedora18):
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
int main(int argc, char *argv[])
{
struct hostent *h;
if(argc != 2)
{
fprintf(stderr,"usage:getip address\n");
exit(1);
}
if((h = gethostbyname(argv[1]))==NULL)
{
fprintf(stderr, "hostname error!\n");
exit(1);
}
printf("Host name: %s\n",h->h_name);
printf("IP Address: %s\n",inet_ntoa(*((struct in_addr*)h->h_addr)));
return 0;
} 展开
运行报错:Segmentation fault
代码如下(我用的系统是fedora18):
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
int main(int argc, char *argv[])
{
struct hostent *h;
if(argc != 2)
{
fprintf(stderr,"usage:getip address\n");
exit(1);
}
if((h = gethostbyname(argv[1]))==NULL)
{
fprintf(stderr, "hostname error!\n");
exit(1);
}
printf("Host name: %s\n",h->h_name);
printf("IP Address: %s\n",inet_ntoa(*((struct in_addr*)h->h_addr)));
return 0;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询