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宏只能在模块文件中使用,不能在内核源代码中使用。