Ich schreibe einen C-Daemon, der von der Existenz zweier Kernel-Module abhängt, um seine Aufgabe zu erledigen. Das Programm verwendet diese (oder andere) Module nicht direkt. Es braucht sie nur, um zu existieren. Daher möchte ich programmatisch prüfen, ob diese Module bereits geladen sind oder nicht, um den Benutzer zur Laufzeit zu warnen.
Bevor ich mit der Analyse von /proc/modules
oder lsmod
output beginne, existiert bereits irgendwo eine Dienstprogrammfunktion?
Etwas wie is_module_loaded(const char* name)
;
Ich bin mir ziemlich sicher, dass das schon einmal gefragt wurde. Ich denke jedoch, dass mir die richtigen Begriffe fehlen, um danach zu suchen.
Es gibt keine solche Funktion. Tatsächlich enthält der Quellcode von lsmod ( lsmod.c
) die folgende Zeile, die Sie zu Ihrer Lösung führen sollte:
Es gibt auch ein veraltetes query_module
, aber es scheint, dass es heutzutage nur in Kernel-Headern existiert.
Tags und Links c kernel-module system-calls