-1
fstream file("G:", ios::in | ios::binary);

unsigned char buffer[512];

file.read((char *)buffer, 512);

file.close();

cout << buffer <<"\n";

フラッシュドライブからブートセクターを生で読み取りたいです。このジョブに fstream を使用できますか?

4

1 に答える 1

3

ファイル ストリーム操作は、ファイルにアクセスするために記述されます。CPP リファレンスは、このコンテキストで「ファイル」が何であるかをさらに指定していません。おそらくそれらは正しいでしょう。結局のところ、「ファイル」と見なされるものは OS に大きく依存します。

ただし、これらの解釈のいずれにおいても、ブート セクタはファイルではありません。Windows エクスプローラーまたは OS X Finder でブート セクターを表示または読み取ることはできません。これは、ファイルレベルの「上と下」にあります。

「G:」は「フラッシュ ドライブ」として解釈されず、単に「フル パス指定」として解釈されるため、テスト プログラムは失敗します。「ブート セクタ」のレベルで作業する場合、パスとドライブ文字の割り当てはありません代わりに、実際のディスクや実際のセクターなどの物理オブジェクトを操作しています。

生の読み取りの最初の味については、http://www.codeproject.com/Articles/28314/Reading-and-Writing-to-Raw-Disk-Sectorsを参照してください。

于 2013-09-05T08:56:46.383 に答える