¿Cómo recibir notificaciones sobre los cambios en la interfaz de red con Netlist y la señal RTMGRP_LINK?

Escribo un programa que necesita ser notificado si las interfaces de red han cambiado, en particular, apareció una nueva o desapareció. Mi investigación traída a lanetlink y esRTMGRP_LINK señal. Estapágina de manual da un ejemplo que aún no está claro para mí.

Tiene este código:

       memset(&sa, 0, sizeof(sa));
       snl.nl_family = AF_NETLINK;
       snl.nl_groups = RTMGRP_LINK | RTMGRP_IPV4_IFADDR;

       fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
       bind(fd, (struct sockaddr*)&sa, sizeof(sa));

Entiendo que esta es una parte de inicialización para habilitar algunas señales. Supongo que debe haber una subrutina de controlador que procese el evento.

Mis preguntas son:

¿Es este un fragmento de código correcto para habilitar el evento?

Cómo procesar el evento: ¿necesito tener algún controlador?

¿Cuáles son las estructuras de datos que contienen información relevante (sobre las interfaces de red y sus cambios)?

Gracias por cualquier ayuda.

Respuestas a la pregunta(2)

Su respuesta a la pregunta