程序中使用gethostbyname出现段错误

shavey 2007-03-30 04:52:39
我在程序中用到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
...全文
621 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shavey 2007-04-05
  • 打赏
  • 举报
回复
问题已经解决,是另外的程序分配空间不足所致。
被调式信息误导了……
谢谢neil_cn(Neil)的关注!
shavey 2007-04-04
  • 打赏
  • 举报
回复
我用相同的程序,处理sohu页面就没问题,处理http://www.afrsmartinvestor.com.au这个页面就有问题。
不知道gethostbyname这个函数有什么功能上的限制没有?
neil_cn 2007-04-01
  • 打赏
  • 举报
回复
不要输入 "http://" 试试,另外,你代码不完整,不知道怎么分析,gdb的信息并不是说 gethostbyname 有问题,你最好打断点跟一下看看

23,131

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧