为什么我的printk消息最近在日志文件中更新?

时间:2013-04-11 09:54:44

标签: linux-kernel linux-device-driver kernel

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

#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");

安装此模块后,我希望您好,但不会显示。 但在删除模块时,会显示您好。 当我再次插入时,会显示再见

所以有一个滞后。

为什么?

1 个答案:

答案 0 :(得分:5)

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