c - Uso de resolv.h
dns resolver (2)
No debe declarar _res
usted mismo - resolv.h
incluye la declaración correcta (a pesar de lo que implica la página man).
Estoy tratando de averiguar la dirección de mi servidor DNS leyéndola de la estructura _res de resolv.h Según la resolución del hombre 3, el código de configuración debería ser.
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>
extern struct state _res;
y luego leí todo lo que necesito. Mi problema es que tratando de compilar esto obtengo
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.
por clang.
¿Qué estoy haciendo mal?
#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];
}