Linux 打印内核模块中的进程数

Linux 打印内核模块中的进程数,linux,kernel,kernel-module,sysinfo,Linux,Kernel,Kernel Module,Sysinfo,我对内核编程非常陌生,我写了一个小的内核模块,就像这样 obj-m +=mod.o all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean c型 如果我从终端发出make,它会给出错误 致命错误:sys/sysinfo.h:没有这样的文件或目录 你能告诉我这里

我对内核编程非常陌生,我写了一个小的内核模块,就像这样

 obj-m +=mod.o

 all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

 clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
c型

如果我从终端发出make,它会给出错误 致命错误:sys/sysinfo.h:没有这样的文件或目录


你能告诉我这里有什么问题吗?

如果有人还在研究如何解决这个问题,我早就解决了,这是解决办法。 这适用于DebianLinux3.16版本。如果你想看看这里的代码


看起来您正在尝试调用库函数sysinfo。内核中不支持这样的东西:trere没有libc,等等。至于线程/进程的数量,请查看nr_threads变量in,以及在sysinfo-syscall的实现do_-sysinfo-kernel/sys.c中如何使用in。谢谢@Eugene的提示,第一点非常有效,我们不能在内核中使用sysinfo。我几乎已经用fork.c下的nr_进程函数调用解决了这个问题,我会在解决方案完全工作后立即更新它。
 obj-m +=mod.o

 all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

 clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean