WindowsにはLinuxのようなiノード番号がありますか? Windowsはファイルを内部的にどのように管理しますか?
使用される用語は、Unixの世界で見られるものとは少し異なりますが、ファイルを一意に識別する整数を持つという点で、NTFSと一部のWindows APIは、類似した「ファイルID」の概念を公開します。
GetFileInformationByHandle
を使用して、開いているハンドルのファイルIDを照会できます。 nFileIndexHigh
、nFileIndexLow
;を参照してください。これは、それぞれ64ビットのファイルIDの上位部分と下位部分です。
NtCreateFile
は、IDでファイルを開くこともできます。 FILE_OPEN_BY_FILE_ID
国旗。ファイルIDで開くには、ボリュームハンドルが必要です。
はい。 NTFSはBツリーインデックスシステムを使用します。 MFT内のすべてのファイルには、64ビットのファイルインデックス番号があります。ファイルIDと呼ばれるこの番号は、そのボリューム内でのみファイルを一意に識別します。つまり、同じPC上の2つの別々のボリュームにある2つのファイルは、同じファイルIDを持つ場合があります。詳細については、このMSDNの記事を参照してください。
https://msdn.Microsoft.com/en-us/library/windows/desktop/aa363788(v = vs.85).aspx
2番目の質問、「Windowsはどのようにファイルを内部で管理するか」については、次のTechNetの記事を参照してください。
https://technet.Microsoft.com/en-us/library/cc781134(v = ws.10).aspx
はい、そうです。通常、fileID
と呼ばれます。 Win8コマンドシェルでこれを試してください。
fsutil file queryfileid <filename>
この質問は、特定のOSよりもファイルシステムに関するものです。各ファイルシステムは異なる方法でファイルを処理します(そして各OSは複数のファイルシステムをサポートできます)。
http://pcnineoneone.com/howto/filesystems1/ は、Windowsで人気のある2つのファイルシステムであるFATとNTFSについてかなり優れた記事があります。
ここには2つのことがあります。 INodeという用語と、INodeの用語またはその代わりにINodeのようなものを使用するファイルシステムの実装。
私が知っているすべてのWindowsファイルシステム(FAT *、NTFS)は、実際の実装でiノードのような構造を使用しています。
答えをさらに簡素化するには
(INodeは、ファイルに関するメタデータのブロックと考えてください。)
用語としてのINode:Windowsファイルシステムにはない。
概念としてのINode:Windowsには他の構造があり、プロパティと使用法は似ていますが、異なる名前で使用されます