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 参考没有进一步说明在这种情况下“文件”是什么——也许他们是对的。毕竟,它高度依赖于操作系统,什么被认为是“文件”。
但是:在这些解释中,引导扇区都不是文件。您无法在 Windows 资源管理器或 OS X Finder 中看到或读取引导扇区 - 它“超出”文件级别。
您的测试程序失败,因为“G:”不被解释为“闪存驱动器”,而仅仅是“完整路径规范”。在“引导扇区”级别上工作时,没有路径和驱动器号分配。您正在使用物理对象:实际磁盘和实际扇区。
请参阅http://www.codeproject.com/Articles/28314/Reading-and-Writing-to-Raw-Disk-Sectors了解原始阅读的初体验。