我正在尝试通过从resolv.h的_res结构中读取它来查找我的DNS服务器地址。根据man 3解析器,设置代码应该是。
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>
extern struct state _res;然后我就读出我需要的任何东西。我的问题是,试图编译这个代码时,我会得到
resolver.c:5:21: error: conflicting types for '__res_state'
extern struct state _res;
^
/usr/include/resolv.h:251:16: note: expanded from macro '_res'
#define _res (*__res_state())
^
/usr/include/resolv.h:249:28: note: previous declaration is here
extern struct __res_state *__res_state(void) __attribute__ ((__const__));
^
1 error generated.当当。
我做错了什么?
发布于 2012-07-07 11:33:24
您不应该自己声明_res - resolv.h包含了正确的声明(不管手册页暗示了什么)。
发布于 2012-07-07 12:16:25
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>
int main() {
// call this first
res_init();
// do something with this list it contains list of dns servers
_res.nsaddr_list[0];
}https://stackoverflow.com/questions/11371965
复制相似问题