1static
int__init initialization_function(
void)2
5module_init(initialization_function);
這裡要特別提出的就是,呼叫初始化函式當中的錯誤處理。由於初始化函式會呼叫很多的註冊設施函式,每乙個函式都有可能失敗,所以必須檢查每乙個函式的返回值。假如在呼叫乙個函式時發生了錯誤,而且這個錯誤大到模組已經不可能在繼續載入了,那麼你要做的事情可不是簡單的輸出模組載入失敗並且退出就行了。你必須把之前所有成功的動作取消掉,重點就是退回已經註冊成功的設施。這個地方的**編寫必須嚴謹。舉個簡單的例子:
1int__init my_init_function(
void)2
清理函式定義如下:
1static
void
__exit cleanup_function(
void)2
5module_exit(cleanup_function);
這個結構基本和初始化函式一致,相應的內容自行腦補一下就行了。記住一點就好了,這個函式只會在裝置被解除安裝的時候呼叫,任何其他地方的呼叫都是錯誤的。至於它的函式體應該做的事情,當然也就是把之前初始化的時候得到的東西還給系統了。
深入理解bootstrap框架之第二章整體架構
一.整體架構 1.css 12柵格系統 把網頁寬度均分為12等分 保留15位精度 這是bootstrap的核心功能。2.基礎布局元件 包括排版 按鈕 布局 表單等等。3.jquery bootstrap外掛程式的基礎 4.響應式設計 相容多個終端。這是bootstrap的終極理念。5.css外掛程式...
深入理解計算機系統 第二章
1 什麼是規格化的值?當exp的位模式既不全為0,也不全為1,這種情況下,階碼字段被解釋為以偏置形式表示的有符號整數,也就是說,階碼的值是e e bias,其中e是無符號數,其位表示為,而bias就是乙個等於2k 1 1的 偏置值。2 什麼是非規格化的值?當階碼域全為0時,所表示的就是非規格化的形式...
深入理解 c 第二章 簡單的委託使用
delegate void stringprocessor string input class person public void say string message says name,message class background note description listing 2.1...