生データを取得するためにハードディスクセクターを読み取ろうとしています。多くの検索を行った結果、生のセクター データを 16 進数と char で格納している人がいることがわかりました。
どちらが良いですか、なぜですか? どちらがパフォーマンスを向上させますか?
私はC++でそれを書こうとしています.OSはWindowsです。
明確にするために -
#include <iostream>
#include <windows.h>
#include <winioctl.h>
#include <stdio.h>
void main() {
DWORD nRead;
char buf[512];
HANDLE hDisk = CreateFile("\\\\.\\PhysicalDrive0",
GENERIC_READ, FILE_SHARE_READ,
NULL, OPEN_EXISTING, 0, NULL);
SetFilePointer(hDisk, 0xA00, 0, FILE_BEGIN);
ReadFile(hDisk, buf, 512, &nRead, NULL);
for (int currentpos=0;currentpos < 512;currentpos++) {
std::cout << buf[currentpos];
}
CloseHandle(hDisk);
std::cin.get();
}
私ではなく他の誰かが書いた上記のコードを考えてみてください。
データ型 char buf[512]; に注意してください。. データ型が char として保存され、16 進数に変換されていません。