3

我写了一个简单的模块如下:

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


static int __init own_init(void)
{

    printk(KERN_INFO "Hi");

    return 0;
}

static int __exit own_exit(void)
{
printk(KERN_INFO "bye");

}

module_init(own_init);
module_exit(own_exit);

MODULE_LICENSE("GPL");

安装此模块后,我期待Hi,但未显示。但是在移除模块时,会显示Hi。当我再次插入时,会显示Bye

所以有一个滞后。

这是为什么?

4

1 回答 1

5

发生这种情况是因为您忘记了日志消息末尾的换行符。当内核输出部分消息(通过将字符串传递给printk()不以换行符结尾的字符串)时,日志系统将缓冲文本,直到消息的其余部分到达。另请参阅 -printk()问题

于 2013-04-11T12:49:25.377 回答