如何在 macOS 上从磁盘读取 RAW 字节

How to read RAW bytes from disk on macOS

我目前正在开发一款从磁盘搜索文件的应用程序。到目前为止,我所做的都是通过快照搜索文件。

我想知道我是否可以从磁盘读取 RAW 字节,而不是直接使用高级 API 获取卷和搜索文件。我想做的是手动从GPT或MBR中提取分区或卷,根据不同类型的文件系统使用不同的策略索引文件,希望我可以加快搜索速度。

我需要知道如何从磁盘读取RAW字节,但不幸的是,经过一番研究,我仍然不知道如何迈出第一步。

能否请您与我分享任何想法,我们将不胜感激。

谢谢。

所以我不是专家,但我有一些想法。

  1. 在 linux / Unix 上,所有设备都只是文件。是的,您的硬盘驱动器是一个文件,也是您的打印机
  2. 您可以逐字节读取该文件或任何您想要实现的目标。

如果 Swift 做不到,那就使用 C。您可以使用 Bridging Headers 与 swift 代码中的 C 代码交互。

int fdes = open("/dev/sda1", O_RDONLY);
if (fdes < 0)
    err(1, "/dev/sda1");
... do more ...

有关该代码的更多信息,我 post 在此处查看此 post:Reading Hard Disk Sectors in C++ on Linux 那里的代码是 C++,但我将非常类似于您需要的纯 c为了使用 Bridging Headers.