fstream file("G:", ios::in | ios::binary);
unsigned char buffer[512];
file.read((char *)buffer, 512);
file.close();
cout << buffer <<"\n";
フラッシュドライブからブートセクターを生で読み取りたいです。このジョブに fstream を使用できますか?
fstream file("G:", ios::in | ios::binary);
unsigned char buffer[512];
file.read((char *)buffer, 512);
file.close();
cout << buffer <<"\n";
フラッシュドライブからブートセクターを生で読み取りたいです。このジョブに fstream を使用できますか?
ファイル ストリーム操作は、ファイルにアクセスするために記述されます。CPP リファレンスは、このコンテキストで「ファイル」が何であるかをさらに指定していません。おそらくそれらは正しいでしょう。結局のところ、「ファイル」と見なされるものは OS に大きく依存します。
ただし、これらの解釈のいずれにおいても、ブート セクタはファイルではありません。Windows エクスプローラーまたは OS X Finder でブート セクターを表示または読み取ることはできません。これは、ファイルレベルの「上と下」にあります。
「G:」は「フラッシュ ドライブ」として解釈されず、単に「フル パス指定」として解釈されるため、テスト プログラムは失敗します。「ブート セクタ」のレベルで作業する場合、パスとドライブ文字の割り当てはありません。代わりに、実際のディスクや実際のセクターなどの物理オブジェクトを操作しています。
生の読み取りの最初の味については、http://www.codeproject.com/Articles/28314/Reading-and-Writing-to-Raw-Disk-Sectorsを参照してください。