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 に答える