乙個程序除了指令、資料之外還會有一些資訊用於記錄程序的狀態(這是程式所沒有的)。在這些記錄中就有乙個表稱之為檔案描述表,而檔案描述符就是這張檔案描述表的索引。
下面是一張檔案描述符表的示意圖,除了檔案描述符表之外還畫出了其它與之相關的資訊:
檔案描述表是程序記錄表項中的一部分,檔案描述表的每一條記錄又有檔案描述符標誌和檔案指標構成。
檔案描述符標誌記錄著檔案描述符的狀態,此篇筆記不做記錄。而檔案指標指向另一張稱為檔案表項的表。
檔案表項的組成如最前面的圖所示。
每乙個開啟了的檔案(或者說有對應檔案描述符的檔案)都會有乙個v節點結構。稱為v節點的結構包含了檔案型別以及對此檔案進行各種操作函式的指標。最後v節點結構還包含了乙個索引節點稱之為i節點。
i節點包含了檔案的所有者、檔案長度、指向檔案實際資料塊在磁碟上所在位置的指標等。
核心程式設計的資料結構
一 資料型別 1.字串 typedef struct unicode string ushort length 字串的長度 所佔的位元組數 ushort maxinumlength 字串緩衝區的長度 所能佔的最大位元組數 pwstr buffer 字串緩衝區 字串的位址,也即指標 unicode s...
核心資料結構
關於開發驅動重要的核心資料結構,方便自己理解 driver object typedef struct driver object cshort type cshort size 乙個鍊錶,記錄了該驅動建立的所有裝置物件 pdevice object deiceobject ulong flags ...
核心資料結構
核心需要儲存i o元件使用的狀態資訊,可以通過若干核心資料結構比如說檔案開啟表等來完成 unix系統中在讀取乙個使用者檔案的時候,核心需要去檢查下快取,然後再去決定是否執行磁碟i o,在讀乙個程序映象時候,核心只需要從記憶體當中讀取資料,也就是說這些操作都可以呼叫read 函式來完成,但是語義不同 ...