Linux驅動開發(三)——模組初始化和解除安裝函式
阿新 • • 發佈:2019-01-22
在(一)中,主要講述了模組的基本組成,載入,解除安裝和檢視工具的使用。本篇中,主要講述module_init()和module_exit()這兩個函式的使用。
在(一)中給的原始碼檔案中,模組初始化和解除安裝函式為:init_module()和cleanup_module()。這兩個函式名是預設的模組初始化函式名和模組解除安裝函式。我們可以使用module_init和module_exit()這兩個函式來給模組指定模組初始化時執行哪個函式,模組解除安裝時執行哪個函式。如在本篇中的程式原始碼如下圖所示:
#include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> MODULE_LICENSE ("GPL"); static int __init example_2_init (void) { printk (KERN_INFO "The first module2\n"); return 0; } static void __exit example_2_exit (void) { printk (KERN_INFO "The module has uninstalled2\n"); } module_init (example_2_init); module_exit (example_2_exit);
程式中並不包含init_module()和cleanup_module()這兩個函式。但是模組依然可以正常載入和解除安裝。按照我們在(一)中的模組操作方法,執行結果如下: