Sto scrivendo un demone C, che dipende dall'esistenza di due moduli del kernel per svolgere il proprio lavoro. Il programma non utilizza direttamente questi (o altri) moduli. Ha solo bisogno di loro di esistere. Pertanto, vorrei verificare a livello di codice se questi moduli sono già caricati o meno, al fine di avvisare l'utente in fase di runtime.Controllare a livello di codice se esiste o meno un modulo del kernel linux in fase di esecuzione
Prima di iniziare a eseguire operazioni come l'analisi dell'uscita /proc/modules
o lsmod
, esiste già una funzione di utilità? Qualcosa come is_module_loaded(const char* name)
;
Sono sicuro che questo è stato chiesto prima. Tuttavia, penso che mi mancano i termini corretti per cercare questo.
Sembra molto sporco ma funziona e non ho mai pensato a una soluzione così semplice. Cheers – dgraziotin
Dato che lsmod apre "/ proc/modules", e che grep implica un altro processo e file aggiuntivi si apre per la pipe, sarebbe più efficiente usare "grep nome_modulo/proc/modules" e verificare se c'è qualche output da quello invece? Ciò funzionerebbe anche se lsmod non fosse disponibile. – Jeremy