En Fedora (al menos), la forma preferida para interactuar con NetworkManager es a través de DBus.
Mientras wireless-tools y similares funcionará - incluso las llamadas directas del kernel, si tiene que - hay un par de problemas:
- es probable que tengas privilegios de superusuario
- NetworkManager probablemente tendrá un ataque de pánico y entrar en peleas con usted, a menos que detenga su servicio
- Los controles de red normales del usuario (por ejemplo, los iconos de la bandeja de escritorio) casi con seguridad están configurados para usar NetworkManager.
Puede enviar y recibir mensajes DBus para todas las tareas que ha mencionado, tanto para WiFi como para otros tipos arbitrarios de interfaces de red. La API se publica here, for version 0.8.
Para sistemas operativos más recientes, aparentemente hay changes in the API, with a migration guide.
Su wiki debería ser realmente útil.
Sé que tanto Fedora como Ubuntu usan NetworkManager de manera predeterminada; Creo que muchos otros sistemas también lo hacen, pero no tienen una lista exhaustiva.
Por supuesto, si usa un sistema integrado, una distribución personalizada o algo así, su millaje puede variar.
Idioma? C/C++? – Paul
sí Paul c/C++ library – Ashish