1. 程式人生 > >Linux 檔案描述符與索引節點

Linux 檔案描述符與索引節點

檔案描述符與索引節點
 一般來講,使用與管理檔案是通過檔名來進行的,但從應用程式設計的角度看,檔案描述符更有用,而系統中的檔案在本質上是通過

其索引節點進行管理的。
 檔案描述符是應用程式中表示被開啟的檔案的一個整數,其他對檔案的操作介面都要使用這個整數來指定所操作的檔案。
 從系統的角度來看,檔案的索引節點(inode)是檔案的唯一標識。一個檔案的inode包含檔案系統處理檔案所需要的全部資訊,如

訪問許可權、當前大小等。詳細來說,實際上存在兩種型別的inode:一個是所謂的核心inode(in-core inode),儲存在記憶體中,在系統中

每個開啟的檔案都對應著一個核心inode;另一個是磁碟inode(on-disk inode),在檔案系統中的每一個檔案都有一個磁碟inode,儲存在

磁碟上,它所儲存的具體資訊與檔案系統的型別有關。當程序開啟一個檔案時,檔案的磁碟inode中的資訊就會被載入記憶體,並建立一個內

核inode。當核心inode被修改後,系統負責將其同步到磁碟上。磁碟inode與對應的核心inode所儲存的資訊並不是完成相同的。核心inode

記錄的是關於檔案的更通用的一些資訊,而忽略掉與具體檔案系統型別相關的一些資訊。
 一般而言,一個inode應當記錄如下資訊:
  * 檔案型別
  * 與檔案相關的硬連結的個數
  * 以位元組為單位的檔案的長度
  * 裝置識別符號
  * 在檔案系統中標識檔案的索引號
  * 檔案所屬使用者的UID(User ID,使用者識別符號)
  * 檔案所屬組的GID(Group ID,組識別符號)
  * 各種時間戳,包括檔案狀態的改變時間、檔案的最後訪問時間和最後修改時間