Consulte la página del manual de getifaddrs. Hay un programa de ejemplo hacia el final.
Si está buscando esto en el contexto de una aplicación de escritorio y desea que se le notifiquen los cambios (por ejemplo, interfaces que se conectan o desconectan), considere usar DBus para monitorear NetworkManager.
http://projects.gnome.org/NetworkManager/developers/api/09/spec.html
Puede enumerar interfaces, así como cosas específicas de la interfaz (como puntos de acceso WiFi disponibles y conectados, enlaces PPP configurados pero no marcados, etc.), y si algo cambia, recibirá una notificación a través del DBus. .
(Si esto es para algo más como un programa de servidor, donde espera que la configuración de la red permanezca más estable, entonces cosas como getifaddrs
son posiblemente más apropiados.)