如果你有了解過Linux內核,那麼你應該對printk函數有了一定的了解,那麼對於沒接觸過printk函數的朋友來說,printk()究竟要如何使用呢?下面小編通過一個例子來講解printk()的使用,以便大家有更深入的了解。
實例:
新建hello.c
#include 《linux/kernel.h》
#include 《linux/module.h》
int init_module(void)
{
printk(KERN_INFO “Welcome.。。.。\n”);
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO “Bye.。。.\n”);
}
然後在同一目錄下編寫Makefile:
obj-m := hello.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd)
clean:
-rm *.o *.ko Mod* mod* *.mod.c
進入終端,切換到對應目錄下
執行 make
編譯完成後會得到 hello.ko//hello.ko就是編譯好的模塊
執行 sudo insmod hello.ko //加載模塊
執行 lsmod 可以察看當前已經加載的模塊,如果hello.ko已經加載,那麼執行完lsmod後就可以看到已經加載好的hello.ko
執行dmesg就可以察看printk()函數的輸出,此時可以看到打印出來的Welcome.。 這個信息其實是保存在/var/log/syslog這個文件中的,查看這個文件也同樣能看到輸出的信息Welcom.。。
測試完畢後執行sudo rmmod hello卸載模塊即可
上面就是Linux使用printk()的方法介紹了,本文只是簡單的通過一個例子來講解printk函數的用法,你可以上網了解更多的printk()的用法。