我正在研究我的第一个内核模块 . 我已经在Linux内核模块编程指南中完成了一些练习,但这是我的第一个没有任何指导的练习 .
当我使用printk或pr_err宏打印消息时,在我打印另一条消息之前,journalctl没有赶上 .
例如
int init_module()
{
pr_err("This is a message");
}
void cleanup_module()
{
pr_err("this is a second message");
}
如果我insmod这个模块,journalctl什么都不会显示 . 当我rmmod journalctl将显示两个消息,时间戳将是相同的 .
如果我insmod这个模块然后insmod另一个打印两个消息的模块将在我insmod第二个模块后显示 . 两个消息的时间戳都相同 .
1 回答
如果
printk
的消息不包含换行符号,则可以延迟其输出 .通常,你需要
有时,使用
KERN_INFO
或KERN_ALERT
也会强制立即输出消息 . 但终止\n
的方法似乎更清楚 .取自this question的答案 .