2014-01-13 25 views
2

我真的不明白爲什麼在UNIX系統中他們不直接在inode中存儲文件名,而是使用映射系統..這只是因爲inode被定義並且無法更改,因此如果長文件名無法存儲它們? 或者,也許這是爲了防止我們更改文件名,我們不必在inode中多做一次?爲什麼我們不能直接在inode中存儲文件名

請告訴我,如果我錯了或者有其他解釋。 在此先感謝

+1

如果同一個文件[有多個名稱](https://en.wikipedia.org/wiki/Hard_link)會怎麼樣? –

+0

你的意思是說如果有多個文件鏈接到inode?如果是的話,這將是一個問題.. – Ben

+0

你會在目錄中存儲什麼,然後?只是inode號碼?這不會允許單個文件的多個名稱。請記住,inode包含除文件名外的所有關於文件的信息,目錄定義了inode的名稱。 –

回答

3

爲什麼不包括文件名,直接在inode的,這裏要說的是,我想起的原因:

  1. 文件可能有多個名稱,又名硬鏈接
  2. 爲支持長文件名稱,比如說至少255字節(在大多數POSIX系統上),inode將會很大,並且因爲通常文件名不會很長,所以這些空間中的很多會被浪費。
  3. 如果將來我們想/需要支持更長的文件名,我們需要更改inode的結構,這可能會導致向後兼容問題。
相關問題