当前位置:  技术问答>linux和unix

gethostname问题

    来源: 互联网  发布时间:2016-03-12

    本文导语:  //hostaddress存放的是网络地址名 如www.163.com (gdb) 34              hp = gethostbyname(hostaddress); 执行往后 hostaddress编程乱码?????? 如果改成以下程序 28              char *address=(char *)malloc(1024*sizeof(...

//hostaddress存放的是网络地址名 如www.163.com
(gdb)
34              hp = gethostbyname(hostaddress);
执行往后 hostaddress编程乱码??????



如果改成以下程序
28              char *address=(char *)malloc(1024*sizeof(char));
(gdb)
31              strcpy(address,hostaddress);
(gdb)
34              hp = gethostbyname(address);
上面几行代码 ,本来hostaddress存放的网址,为什么执行完hp = gethostbyname(address);address存放完整地址,但hostaddress变成空指针了??


|
.....就是说hostaddress的错误不是因为gethostname,而是你没贴出来的代码在传递hostaddress的时候有问题....

|
不应该呀!
[code]
/*
 * get_host_by_name.c
 */

#include 

#include 

int
main(void)
{
        struct hostent *host;
        char name[] = "www.google.com";
        char **aliases;
        int i;

        if ((host = gethostbyname(name)) == NULL) {
                herror("gethostbyname");
                exit(1);
        }

        (void)printf("name = %sn", name);
        (void)printf("h_name = %sn", host->h_name);
        i = 0;
        aliases = host->h_aliases;
        while (*aliases) {
                (void)printf("h_aliases[%d] = %sn", i, *aliases);
                aliases++;
                i++;
        }

        return (0);
}
[/code]
程序输出:
name = www.google.com
h_name = www-china.l.google.com
h_aliases[0] = www.google.com
h_aliases[1] = www.l.google.com
在gdb里也正常啊.

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.net类inetsocketaddress的类成员方法: gethostname定义及介绍
  • gethostname运行很慢,老是很久返回远程主机IP,怎么办?
  • java命名空间java.net类inetaddress的类成员方法: gethostname定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3