Linux中檔案描述符與索引節點的區別

2021-08-11 06:58:22 字數 815 閱讀 1774

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

其索引節點進行管理的。

檔案描述符是應用程式中表示被開啟的檔案的乙個整數,其他對檔案的操作介面都要使用這個整數來指定所操作的檔案。

從系統的角度來看,檔案的索引節點(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,組識別符號)

* 各種時間戳,包括檔案狀態的改變時間、檔案的最後訪問時間和最後修改時間

linux中檔案描述符

在linux系統中,所有東西都可以看成是檔案,檔案又可以分為普通檔案,目錄檔案,鏈結檔案和裝置檔案。檔案描述符是核心為了高效管理已被開啟的檔案所建立的索引,是乙個非負整數用於指代被開啟的檔案,所有執行i o操作的系統呼叫都是通過檔案描述符。程式剛剛啟動的時候,0是標準輸入,1是標準輸出,2是錯誤輸出...

linux檔案描述符

本文介紹了檔案描述符,1 首先說什麼是檔案描述符,它有什麼作用?檔案描述符是乙個簡單的整數,用以標明每乙個被程序所開啟的檔案和socket。基於檔案描述符的輸入輸出函式 open 開啟乙個檔案,並指定訪問該檔案的方式,呼叫成功後返回乙個檔案描述符。creat 開啟乙個檔案,如果該檔案不存在,則建立它...

linux檔案描述符

當某個程式開啟檔案時,作業系統返回相應的檔案描述符,程式為了處理該檔案必須引用此描述符。所謂的檔案描述符是乙個低階的正整數。最前面的三個檔案描述符 0,1,2 分別與標準輸入 stdin 標準輸出 stdout 和標準錯誤 stderr 對應。因此,函式 scanf 使用 stdin,而函式 pri...