打印内核模块中的进程数

时间:2014-10-15 22:54:15

标签: linux kernel kernel-module sysinfo

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

mod.c

#include<linux/kernel.h>
#include<linux/module.h>
#include<sys/sysinfo.h>

int init_module(void)
{
    int k;
    struct sysinfo info;
    printk(KERN_INFO "hello\n");
    k = sysinfo(&info);
    printk(KERN_EMERG "procs = %d\n", info.procs)

    return 0;
}

void cleanup_module(void)
{

    printk(KERN_INFO "Goodbye\n");
}

和Makefile看起来像这样,

 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

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

你可以告诉我这里的问题是什么吗?

1 个答案:

答案 0 :(得分:0)

如果有人还在寻找如何做到这一点,我前一段时间解决了这个问题,这是解决方案。 这适用于debian Linux 3.16版本。如果你想看一下这里的代码。

https://github.com/st0rmi/rootkit_programming/blob/master/assignment01/assignment01_mod.c