Windowsファイルシステムでfseekがどのように機能するのだろうか。私が知る限り、ファイルはクラスターのリンクされたリストのようなものです (それらはおそらく一定のサイズです) が、目的地に移動する fseek がこのクラスターの長いチェーンを読み取ってジャンプする必要があるかどうか、またはおそらくいくつかの配列であるかどうかはわかりませんfseek はそれを参照するだけで、前のクラスターを読み取る必要なく正しいクラスターに移動します。誰かがそれに答えることができますか?
1 に答える
1
Windows での動作に興味がある場合fseek()
は、Visual Studio に付属の CRT ソース コードを参照してください。
FILE_OBJECT ::CurrentByteOffset を適切に調整するだけのSetFilePointer() API を使用して実装されていることがわかります。
ファイルシステムの実装者は、このオフセットを同期 (重複しない) 読み取りおよび書き込み操作に使用します。ファイルシステムがファイルデータ (クラスター/エクステント) を追跡する方法については、実装によって異なります。どのような問題を解決しようとしていますか?
于 2012-11-17T19:47:42.260 に答える