linux 檔案IO系統學習

2021-09-24 20:34:59 字數 846 閱讀 9043

所有的io操作開啟的檔案系統都會生成乙個檔案描述符fd來表示已經開啟的檔案。fd是乙個整數。

fd = open(pathname, flags, mode)

函式開啟pathname所標識的檔案,並返冋檔案描述符,用以在後續函式呼叫中指代開啟的檔案。如果檔案不存在,open()函式可以建立,這取決於對位掩碼引數flags的設定。如果開啟的過程**現錯誤,則返回-1。

flags引數還可指定檔案的開啟方式:只 讀、只寫亦或是讀寫方式。

mode引數則指定了由open()呼叫後建立的檔案的訪問許可權, 如果open()函式並未建立檔案,那麼可以忽略或省略mode引數。

mode的常見引數:

函式呼叫的作用是從fd所指代的開啟檔案中讀取至多count位元組的資料,並儲存到buffer中。read()呼叫的返冋值為實際讀取到的位元組數。如果再無位元組可讀(例如:讀到檔案結尾符eof時),則返回值為0。

numwritten = write(fd, buffer, count)

函式呼叫的作用是從buffer中讀取多達count位元組的資料寫入由 fd所指代的已打幵檔案中。write()呼叫的返冋值為實際寫入檔案中的位元組數,且有可能小於count。

status = close(fd)

在所有輸入/輸出操作完成後,呼叫close(),釋放檔案描述符fd以及與之相關的核心資源。

檔案系統學習5 檔案系統IO子系統

io系統 01 io子系統 io系統 02 使用者態的檔案io操作 io系統 03 虛擬檔案系統 vfs io系統 04 節點路徑搜尋 io系統 05 open流程分析 io系統 06 因open建立的結構體關係 io系統 07 io寫流程分析 io系統 08 io讀流程分析 io系統 09 直接i...

linux 顯示系統學習

gnome gdm kde kdm xdm x display manager x server dev fb0 ptstty gvfs dridrm linux 的3d加速 客戶端程式通過xlib 和 glxlib來和xserver 通訊。客戶端程式一般不直接呼叫,而通過使用toolkit庫比如g...

Linux系統學習之初

在linux誕生之前,一直是unix的天下。只不過當時unix並不能免費獲得,要使用必須先購買授權。在這樣的背景下,很多計算機愛好者非常渴望有乙個便宜或者免費的作業系統供大家學習研究。1983年,計算機界的牛人richard stallman發起了乙個計畫,目的就是構建一套完全自由的作業系統,這個計...