Dennis Ritchie 和 Ken Thompson 的論文UNIX Time-Sharing System提到了以下幾點
- 關于 i-number:目錄條目僅包含關聯檔案的名稱和指向檔案本身的指標。該指標是一個整數,稱為檔案的 i-number(用于索引號)
- 關于open和create系統呼叫:回傳值(open和create)稱為檔案描述符。它是一個小整數,用于在后續呼叫中標識檔案
- open / create的目的: open 或 create 系統呼叫的目的是通過搜索顯式或隱式命名的目錄,將用戶給出的路徑名轉換為 i 編號
這是否意味著檔案描述符只是檔案的 i 號?還是我錯過了什么?
uj5u.com熱心網友回復:
UNIX 中的檔案描述符基本上只是當前行程打開檔案陣列的索引。
inode 編號是檔案系統的 inode 表的索引。
所以它們基本上只是整數,是陣列的索引,但它們是完全不同的、不相關的陣列的索引。所以他們之間沒有任何聯系。
uj5u.com熱心網友回復:
為了增加 Chris Dodd 的答案,不僅 inode 編號和檔案描述符編號不直接相關,而且它們也不實用。
每個檔案系統的索引節點號都是唯一的。想象一下,如果您在具有 inode numberfileA的檔案系統(例如)上打開,并且在同一行程中還打開了另一個也恰好具有 inode number 的檔案系統(例如 )。在這種情況下檔案描述符應該是什么?/mnt100fileB/mnt2100
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/512512.html
