首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C中直接访问高清原始数据?

如何在C中直接访问高清原始数据?
EN

Stack Overflow用户
提问于 2011-12-17 09:01:48
回答 2查看 1.1K关注 0票数 4

我需要在U盘(FAT16或FAT32)上做一个完整的格式化,在驱动器上放一个文件,然后删除它并使用C程序恢复文件。

谁能给我一个提示,我应该用什么来完成这个任务?

我了解FAT16/32文件系统的布局,问题是我不知道如何使用C访问原始的HD数据(因为我不能使用fopen或mmap,因为文件已经不在那里了)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-17 09:09:13

这是高度特定于操作系统的。

对于Linux,您需要打开原始设备/dev/sdxx。请注意,有一些特权环需要管理。

对于Windows,您将使用类似以下内容:

代码语言:javascript
复制
 HANDLE h = CreateFile ("\\\\.\\PhysicalDriveX", GENERIC_READ,
                    FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
                    OPEN_EXISTING,
                    FILE_FLAG_NO_BUFFERING | FILE_FLAG_RANDOM_ACCESS,
                    NULL);

X依赖于设备的位置。

票数 8
EN

Stack Overflow用户

发布于 2011-12-17 09:06:04

只需在磁盘设备上使用普通文件系统操作即可。

当然,这意味着您需要首先识别磁盘设备。但一旦打开,你甚至可以mmap()它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8541848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档