第十章隨筆

2022-09-13 04:30:11 字數 749 閱讀 5721

一、防止printk函式降低linux驅動效能

大量使用printk函式頻繁操作日誌檔案或控制台裝置檔案會嚴重影響linux驅動效能(因寫磁碟速度遠沒有讀寫記憶體的速度快),因此,要求linux驅動只在開發階段使用printk函式輸出資訊,在正式發布時將其去掉。

printk函式在控制台顯示訊息是通過/dev/console裝置檔案實現的,該裝置只在字元介面的控制台下起作用,所以printk函式只有用在字元介面的控制台上才能正常輸出訊息。

可變引數巨集與固定引數巨集的不同之處就是可變引數巨集需要通過_va_args巨集獲取可變引數巨集的可變引數。_va_args巨集不支援可變引數個數為0的情況。

二、通過虛擬檔案系統(/proc)進行資料互動

/proc是虛擬檔案系統,其讀寫操作都是對記憶體的讀寫,其讀寫速度遠比讀寫/dev檔案系統快,因此,其可作為linux驅動與使用者空間程式互動的工具。

當前系統的記憶體資源是通過/proc/meminfo檔案獲取的。通過proc_dir_entry.read_proc和proc_dir_entry.read_write函式指標來設定其讀寫目錄中的虛擬檔案的動作處理函式,proc_dir_entry結構體代表乙個虛擬目錄或檔案。

linux檔案的讀寫由屬性決定,在程式中可用八進位制表示。刪除虛擬目錄之前,要先刪除虛擬目錄中的虛擬檔案。

三、list命令的3種呼叫格式

list、list_、和list n 三種格式,首先使用list命令顯示**。執行上面的命令會進入gdb控制台,然後執行相關的命令連線android模擬器。

第十章 函式

使用def關鍵字 定義個數可變的位置形參 定義個數可變的關鍵字形參 定義預設值引數 定義個數可變的位置形參 deffun1 args 結果為乙個元組 print args fun1 10,20,30 10,20,30 定義個數可變的關鍵字形參 deffun2 args 結果為乙個字典 print a...

第十章 屬性

z屬性 本章也比較簡單稍作介紹 無參屬性就是我們常見的屬性 可以封裝屬性 以執行緒安全方式訪問 有參屬性就是c 中的所引器 匿名型別 如圖遇到如下 具體點就是 上面的注釋也已經講清楚了,定義的型別之後,構造例項,然後初始化屬性。現在詳細說下 編譯器接收到 上圖 先用var 定義乙個型別,但是不具體指...

第十章 屬性

目錄 10.1 無參屬性 10.2 有參屬性 10.3 呼叫屬性訪問器方法時的效能 10.4 屬性訪問器的可訪問性 10.5 泛型屬性訪問器方法 物件導向設計和程式設計的重要原則之一就是資料封裝,意味著型別的字段不應該公開,否則很容易因為不恰單使用欄位而破壞物件的狀態。可將屬性想象成智慧型字段,即背...