讀書筆記:
第八章:
如果a.c使用了b.c檔案中的函式,需要在a.c檔案中使用extern預先定義b.c中的函式,extern的作用就是告訴編譯器該函式的函式名,引數個數,引數型別和返回值型別,等到a.o和b.o鏈結成可執行檔案或程式時,編譯器再到b.o中尋找函式的具體實現,也就是說,extern只在編譯階段起作用;
由於symbol_consumer驅動使用了symbol_producer驅動中匯出的符號,因此,在安裝symbol_consumer之前,需要先安裝symbol_producer,解除安裝時順序正好相反;
modprobe命令會根據depmod命令生成的linux模組依賴關係來裝載linux模組;
解除安裝linux驅動:
當解除安裝函式被阻塞時,rmmod命令也會被阻塞,也就是永遠不會執行到解除安裝linux驅動模組的**:
(1)引用計數器的值和引用者不一致,實際上引用者是不存在的,因此,只需要將當前的linux驅動模組的引用計數器清零即可;
(2)將原來的解除安裝函式替換成乙個空的解除安裝函式即可;
上面的兩種情況都需要獲取表示要解除安裝的linux驅動模組的module結構體指標,struct module表示了linux驅動的相關資訊,從/proc/kallsyms檔案中查詢系統分配給要解除安裝的linux驅動的module結構體的首位址,然後將首位址強行轉換成module結構體指標。
第八章 指標 第八章 指標
1 什麼是位址 include using namespace std int main 11 在堆中建立對像 我們既然可以在堆中儲存變數,那麼也就可以儲存對像,我們可以將對像儲存堆中,然後通過指標來訪問它 include using namespace std class human 14 在建構...
第八章(筆記)
能在 中進行記憶體單元的定址的暫存器只有4個,分別是bx si di bp 其中bx bp 是基址,bx對應的段位址是ds,bp對應的段位址是ss si di 是變址,單獨使用時段位址是ds,組合使用段位址是跟隨組合的基址對應的段位址 中進行記憶體單元定址彙總 si di bx bp 常量 si 常...
第八章 字典
d 空字典 d 這就是字典 d dict.fromkeys a b d dict zip keyslist,valslist d dict name bob age 22 建立字典的函式 d name 通過索引key獲取對應的value d.keys 返回d字典物件所有key,返回乙個列表 d.va...