【发布时间】:2018-08-17 00:19:00
【问题描述】:
我有这段代码,我试图让内核模块打印系统的uptime,正好在 simple_init 上。
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <sys/sysinfo.h>
/* This function is called when the module is loaded. */
int simple_init(void)
{
struct sysinfo info;
sysinfo(&info);
printk("This pc has been on for %ld seconds\n", info.uptime);;
printk(KERN_INFO "Loading Module\n");
return 0;
}
如果这不是内核模块,我会这样做,我发现 sysinfo 有一个类似的 linux 库,即 linux/sysinfo,但即使我使用那个,它只有一个 Struct sysinfo 而不是我可以调用 sysinfo() 的函数,当我尝试这样做时,我得到了
error: implicit declaration of function ‘sysinfo’ [-Werror=implicit-function-declaration]
sysinfo(&info);
有谁知道其他有效的方法吗?
谢谢
【问题讨论】:
-
@jxh,我对 C 比较陌生,我检查了链接,但没有看到任何与我的目的相关的内容,我可以得到提示吗?
标签: c linux linux-kernel kernel kernel-module