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

Álv*_*aro 4 c filesystems hard-drive

我需要在USB记忆棒(FAT16或FAT32)上做一个完整的格式,将文件放在驱动器上,然后删除它并使用C程序恢复文件.

谁能给我一个暗示我应该用什么来完成这个?

我理解FAT16/32文件系统的布局,问题是我不知道如何使用C访问原始高清数据(因为我不能使用像fopen或mmap这样的东西,因为文件不再存在) .

wal*_*lyk 8

这是高度操作系统特定的.

对于Linux,您将打开原始设备/dev/sdxx.请注意,有特权箍需要管理.

对于Windows,您可以使用以下内容:

 HANDLE h = CreateFile ("\\\\.\\PhysicalDriveX", GENERIC_READ,
                    FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
                    OPEN_EXISTING,
                    FILE_FLAG_NO_BUFFERING | FILE_FLAG_RANDOM_ACCESS,
                    NULL);
Run Code Online (Sandbox Code Playgroud)

哪里X取决于设备.