原创 【內核&驅動】字符設備驅動程序【3】

open和release open方法 提供給驅動程序以初始化的能力,open方法應完成以下工作     檢查設備特定的錯誤     如果設備是首次打開,則對其進行初始化工作     如有必要,更新f_op組件     分配並填寫置於fi

原创 【內核&驅動】字符設備驅動程序【1】

1.編寫驅動程序的第一部就是定義驅動程序爲用戶提供的能力(機制); 2.舉例在計算機內存之上實現若干設備抽象: scull:simple character Utility for Loading Localities, 區域裝載的簡單字

原创 【內核&驅動】併發和競態【1】

1.導致併發執行的原因     硬件中斷服務     SMP(對稱多處理)     內核搶佔     schedule() 2.scull的缺陷 if (!dptr->data[s_pos]) {        dptr->data[s

原创 【內核&驅動】字符設備驅動程序【2】

一些重要的數據結構(VFS核心結構體) 1.super_block 和mount一一對應,這也意味着如果mount操作,在內核中分配新的結構體,存儲分區信息 umount時,VFS就把該結構體釋放掉 mount幾次內核中就有幾個supe

原创 C語言預處理命令總結大全

C程序的源代碼中可包括各種編譯指令,這些指令稱爲預處理命令。雖然它們實際上不是C語言的一部分,但卻擴展了C程序設計的環境。本節將介紹如何應用預處理程序和註釋簡化程序開發過程,並提高程序的可讀性。ANSI標準定義的C語言預處理程序包括下列命

原创 消息隊列創建流程及代碼示例

消息隊列是消息的鏈接表,存放在內核中並由消息隊列標示符標識。 1. 創建或打開一個隊列     int msgget(key_t key, int flag);     key: 鍵 由ftok()生成         key_

原创 C++ Templates讀書筆記1__函數模板

本文是《C++ Templates》一書的學習筆記,如果發現有錯誤或者不明確的地方,歡迎指正,如果對本文有更好的建議,同樣也歡迎提出,謝謝。 模板是泛型編程的基礎,所謂泛型編程,就是以獨立與任何特定類型的方式編寫代碼。 函數模板的示例

原创 設計模式C++版_1_簡單工廠模式

本文是學習設計模式的學習筆記,文中引用瞭如下作者(書籍、博客)的內容,實例程序在《設計模式C++版》的基礎上有所改動,特此聲明。 Peixing Yang的《大話設計模式C++源代碼》 程傑的《大話設計模式》 K_Eckel的《設計模式

原创 【APUE】進程環境

本文章介紹進程的環境1.main函數    c程序總是從main函數開始執行的,其原型是        int main(int argc, char **argv);        //argc是命令行參數的個數        //ar

原创 信號及代碼示例

1.    信號的概念     每個信號都有一個以SIG開頭的名字。     在頭文件<signal.h>中,這些信號都被定義爲正整數。不存在編號爲0的信號。     在信號發生的時候,可以進行一下處理:     1)忽略此信號

原创 【內核&amp;驅動】字符設備驅動程序【3】

open和release open方法 提供給驅動程序以初始化的能力,open方法應完成以下工作     檢查設備特定的錯誤     如果設備是首次打開,則對其進行初始化工作     如有必要,更新f_op組件     分配並填寫置於fi

原创 【APUE】文件和目錄

本文章將描述文件系統的其他特性和文件的性質。1 stat、fstat、和lstat函數     獲取文件的信息結構     #include <sys/stat.h>     int stat(const char *restrict p

原创 【內核&amp;驅動】字符設備驅動程序【1】

1.編寫驅動程序的第一部就是定義驅動程序爲用戶提供的能力(機制); 2.舉例在計算機內存之上實現若干設備抽象: scull:simple character Utility for Loading Localities, 區域裝載的簡單字

原创 【APUE】標準I/O庫

本文章說明標準I/O庫1.流和FILE對象     對於文件IO都是針對於文件描述符的,但是對於標準I/O,則是針對於流進行的     當用標準I/O庫打開一個文件的時候,我們已使一個流和一個文件相關聯     對於ASCII字符集,一個

原创 【APUE】文件I/O

1 文件描述符    所有打開的文件都通過文件描述符引用,文件描述符是一個非負整數,本質是一個數組下標。    當打開或創建一個文件的時候,內核向進程返回一個文件描述符。    open,creat返回文件描述符來標識該文件,將其作爲參數