如何检查是否在c中插入了内核模块?

如何检查是否在c中插入了内核模块?,c,linux,module,kernel,C,Linux,Module,Kernel,在不使用system()的情况下,是否可以用C语言检查是否插入了内核模块 例如: system(lsmod | grep ixgbe) 是的,有一个模块接口可以直接从C使用。请参见: 不,不是这样。尝试从/sys/module/[NAME]/initstate读取。如果加载了模块,您应该返回“live\n”之类的内容。是的,因为lsmod程序本身(几乎肯定)是用C编写的,所以无论它做什么,您都可以在程序中执行strace lsmod以了解它的功能。它打开/proc/modules,然后逐行重

在不使用system()的情况下,是否可以用C语言检查是否插入了内核模块

例如:

system(lsmod | grep ixgbe)
是的,有一个模块接口可以直接从C使用。请参见:


不,不是这样。尝试从/sys/module/[NAME]/initstate读取。如果加载了模块,您应该返回“live\n”之类的内容。

是的,因为
lsmod
程序本身(几乎肯定)是用C编写的,所以无论它做什么,您都可以在程序中执行
strace lsmod
以了解它的功能。它打开/proc/modules,然后逐行重新格式化输出。检查源代码中的
lsmod
。它使用
/proc
:在任何现代系统上都不使用。“此系统调用仅在内核2.4之前的Linux上存在;它已在Linux 2.6中删除。”