翻阅了一些旧的网络实用程序代码后,我发现在getipnodebyname()
之前有一个res_init()
调用
void getAddresses(string hostname, set<string> &addresses) {
int error = 0;
res_init();
struct hostent *host = getipnodebyname(hostname.c_str(), AF_INET, AI_DEFAULT, &error);
insertHostAddresses(host, addresses);
freehostent(host);
}
我以前从来没有遇到过这个电话,我查阅了手册页:
https://linux.die.net/man/3/res_init
然而,这并不能确切地帮助我理解何时需要进行此调用。
我知道这是用来预载缓存的?稍微解释一下会对我有帮助。
我应该注意--当前的call getaddrinfo似乎不需要这样做?
发布于 2021-10-22 18:49:25
如果打算在使用任何其他resolver(3)
函数(直接或间接)之前修改任何内部解析器设置,则必须调用res_init()
,例如更改_res.options
中设置的标志。
https://stackoverflow.com/questions/61489719
复制相似问题