日期:2014-05-16  浏览次数:20770 次

程序中使用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 有问题,你最好打断点跟一下看看