我试图通过从resolv.h的res struct读取我的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.

叮当作响。
我做错什么了?

最佳答案

您不应该声明_res您自己-resolv.h包含正确的声明(不管手册页意味着什么)。

关于c - 使用resolv.h,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11371965/

10-10 05:06