module_init是一個宏,用于指定在加載模塊時被調用的初始化函數。在編寫Linux內核模塊時,可以使用module_init來指定一個函數作為模塊的初始化函數。
使用module_init的步驟如下:
示例代碼:
#include <linux/init.h>
#include <linux/module.h>
static int __init hello_init(void)
{
printk(KERN_INFO "Hello, world!\n");
return 0;
}
module_init(hello_init);
static void __exit hello_exit(void)
{
printk(KERN_INFO "Goodbye, world!\n");
}
module_exit(hello_exit);
MODULE_LICENSE("GPL");
在上面的示例中,hello_init函數被指定為模塊的初始化函數,當模塊加載時將會調用該函數輸出"Hello, world!“。同時,hello_exit函數被指定為模塊的退出函數,在模塊卸載時將會調用該函數輸出"Goodbye, world!”。
注意:module_init和module_exit宏只能在模塊文件中使用,不能在內核源代碼中使用。