簡體   English   中英

insmod printk不起作用,但適用於rmmod

[英]insmod printk doesn't work, but works for rmmod

由於我仍在學習內核模塊編程,因此無法找出問題背后的原因。 當我運行insmod hello.kodmesg or /var/logs/message不顯示/打印消息,而當我運行rmmod hello.kodmesg or /var/logs/message顯示/打印來自hello_init(void) and hello_exit(void)

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");


static int hello_init(void)
{
    printk(KERN_ALERT "Hello World!!");
    return 0;
}

static void hello_exit(void)
{
    printk(KERN_ALERT "Bye World!");
}

module_init(hello_init);
module_exit(hello_exit);

printk非常了解換行符。 printk(KERN_ALERT "Hello World!!"); 不打印任何內容,因為它沒有換行符。 它等待下一個printk(KERN_CONT作為該行的延續,並等待下一個prinkt(KERN_CONT和換行符。它被打印在下一個printk(KERN_ALERT因為然后printk假定最后一行已經結束並打印。)。輸出后,立即在格式字符串中添加換行符。

所以就:

  printk(KERN_ALERT "Hello World!!\n");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM