Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用fstream读取引导扇区的原始数据_C++ - Fatal编程技术网

C++ 使用fstream读取引导扇区的原始数据

C++ 使用fstream读取引导扇区的原始数据,c++,C++,我想从闪存驱动器中读取引导扇区。 我可以使用fstream执行此作业吗?文件流操作被写入以访问文件。在这个上下文中,没有进一步指定“文件”是什么——也许他们是对的。毕竟,它在很大程度上取决于操作系统将什么视为“文件” 然而,在这些解释中,引导扇区都不是一个文件。您无法在Windows资源管理器或OS X Finder中查看或读取引导扇区-它超出了文件级别 您的测试程序失败,因为G:没有被解释为“闪存驱动器”,而仅仅是“完整路径规范”。在引导扇区级别工作时,没有路径和驱动器号分配。您使用的是物理对

我想从闪存驱动器中读取引导扇区。
我可以使用fstream执行此作业吗?

文件流操作被写入以访问文件。在这个上下文中,没有进一步指定“文件”是什么——也许他们是对的。毕竟,它在很大程度上取决于操作系统将什么视为“文件”

然而,在这些解释中,引导扇区都不是一个文件。您无法在Windows资源管理器或OS X Finder中查看或读取引导扇区-它超出了文件级别

您的测试程序失败,因为G:没有被解释为“闪存驱动器”,而仅仅是“完整路径规范”。在引导扇区级别工作时,没有路径和驱动器号分配。您使用的是物理对象:实际磁盘和实际扇区


第一次尝试原始阅读请参见。

你能给我一些建议吗?仅仅因为你的问题可能是个糟糕的问题并不意味着你应该将它编辑成垃圾。@MM.-那不是真的。主要问题不是用于访问数据的函数,而是查找类似原始设备的文件。在Unix风格的操作系统上,这很简单,尽管可能存在权限障碍,但在其他操作系统上,这可能是可能的,也可能是不可能的。这就是你错的地方。如果机器具有原始设备文件,并且您的用户具有该文件的权限,则不需要标准i/o功能以外的任何功能。您的程序可以与原始磁盘进行交互,就像与任何其他文件进行交互一样。访问它们的问题仅仅是知道正确的名称和拥有管理权。G:建议OP使用的是Windows,所以像\\.\PhysicalDrive2这样的东西,假设只有一个硬盘和一张CD-ROM,应该可以实现这一点。当然,理想情况下,人们会希望查询正确的名称,而不是查看MSDN上有关如何执行此操作的crystal ball文章。
fstream file("G:", ios::in | ios::binary);

unsigned char buffer[512];

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

file.close();

cout << buffer <<"\n";