当前位置: 技术问答>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变成空指针了??
(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里也正常啊.
[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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。