程序中使用gethostbyname出现段错误
我在程序中用到gethostbyname,出现段错误,请大家帮忙看看。
我的代码:
char *hostname2ip(const char *host)
{
struct hostent *hp;
hp = gethostbyname(host);
if(hp)
return ( inet_ntoa( *(struct in_addr *)hp-> h_addr_list[0]));
else
return NULL;
}
外部调用时,传入的参数host为“http://www.afrsmartinvestor.com.au”.
调试信息如下:
gethostbyname() from /lib/tls/libc.so.6
nss hostname digits dots() from /lib/tls/libc.so.6
__res_ninit() from /lib/tls/libc.so.6
__res_vinit() from /lib/tls/libc.so.6
fopen@@GLIBC_2.1() from /lib/tls/libc.so.6
__fopen_internal() from /lib/tls/libc.so.6
malloc() from /lib/tls/libc.so.6
_int_malloc() from /lib/tls/libc.so.6
------解决方案--------------------不要输入 "http:// " 试试,另外,你代码不完整,不知道怎么分析,gdb的信息并不是说 gethostbyname 有问题,你最好打断点跟一下看看