【发布时间】:2011-12-05 23:01:47
【问题描述】:
我需要读取硬盘扇区。具体来说,我正在尝试编写如下函数:
findFreeBlocks - 分析磁盘结构并找到两个不间断的 给定长度的空闲块。
int findFreeBlocks(char * drivePath, DWORD 需要的扇区, u_int64_t *freeSector1, u_int64_t *freeSector2)
参数:[IN] drivePath – 逻辑驱动器的路径 [IN] 扇区需要 - 扇区中所需空闲块的长度(扇区 = 512 bytes) [OUT] freeSector1 – 第一个找到的空闲扇区的第一个扇区 block [OUT] freeSector2 – 第二个找到空闲的第一个扇区 阻止
返回:0 - 如果成功,错误代码 - 如果错误
有人可以指点我的 API 来帮助我做到这一点吗?我有使用 Objective-c 的经验,但 C/C++ 也可以工作(我猜它会是这样,因为这是非常低的级别)。谢谢
【问题讨论】:
-
你需要这个做什么,你想要解决的真正问题是什么?我很确定几乎没有操作系统会为您提供任何用于搜索空闲扇区的 API,因为这取决于所使用的文件系统,并且通常程序应该使用文件,而不是磁盘上的原始字节。根据所使用的文件系统,存在空闲扇区的假设甚至可能是错误的。
标签: objective-c c macos cocoa hard-drive