Como ser notificado sobre alterações na interface de rede com o sinal Netlist e RTMGRP_LINK?

Eu escrevo um programa que precisa ser notificado se as interfaces de rede foram alteradas, em particular uma nova apareceu ou já existia. Minha pesquisa trouxe para onetlink e os seusRTMGRP_LINK sinal. estemanpage dá um exemplo que ainda não está claro para mim.

Tem 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));

Meu entendimento é que essa é uma parte de inicialização para ativar alguns sinais. Acho que deve haver uma sub-rotina de manipulador que processa o evento.

Minhas perguntas são:

Esse é um trecho de código correto para ativar o evento?

Como processar o evento: preciso ter algum manipulador?

Quais são as estruturas de dados que contêm informações relevantes (sobre interfaces de rede e suas alterações)?

Obrigado por qualquer ajuda.

questionAnswers(2)

yourAnswerToTheQuestion