gpt4 book ai didi

linux - struct hostent 是否有字段 "h_addr"?

转载 作者:IT王子 更新时间:2023-10-29 00:21:45 27 4
gpt4 key购买 nike

我遇到了下面的代码截图:

struct hostent *hp;
hp = my_gethostbyname(localhost);
if (hp == NULL) {
ls_syslog(LOG_ERR, I18N_FUNC_FAIL, fname, "my_gethostbyname()");
return -1;
}
strcpy(localhost, hp->h_name);

memcpy(&addr, hp->h_addr, hp->h_length);

我对最后一句比较迷惑,struct hostent的声明是这样的:

struct hostent {
char *h_name; /* official name of host */
char **h_aliases; /* alias list */
int h_addrtype; /* host address type */
int h_length; /* length of address */
char **h_addr_list; /* list of addresses */
};

它没有名为“h_addr”的字段,但代码确实可以编译,谁能告诉我为什么?谢谢。

最佳答案

你错过了它下面的这一点:

#define h_addr h_addr_list[0] /* for backward compatibility */

所以不,没有问题。

关于linux - struct hostent 是否有字段 "h_addr"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11405819/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com