我正在尝试构建一个类似 bash 的脚本,提供一些功能,例如 ls、pwd、cat 等,在 Linux 系统中使用 NTFS。假设我有一个 NTFS 图像并使用 fopen 将其作为文件打开。然后,我读取了一些扇区,例如位于 0x0B 的 BPB,并获取了一些关于 NTFS 镜像的一般信息。我需要到达根目录指针然后遍历文件系统以实现这些功能,尤其是 ls 和 pwd。我在谷歌上搜索了很多关于 NTFS 的内部细节和偏移量的信息,但我找不到如何实现这个目标。没有易于理解的文档或示例,我无法取得进一步进展。
任何帮助、文档、提示、偏移量表等都将不胜感激。
谢谢。
最佳答案
我猜这是一个学习练习。所以,首先:
写一个
bash
像解释器 一样针对特定的文件系统是错误 的做法。 您应该专注于理解 NTFS 文件系统的细节。写作
ls
,cat
能够处理特定文件系统中的文件是错误的做法。 您应该专注于理解 NTFS 文件系统的细节。如果您编写一个文件系统驱动程序(比如使用 FUSE ),那么原始的
bash
,ls
,cat
将自动使用该文件系统。因为驱动程序将能够翻译像open
这样的系统调用。和read
进入文件系统特定程序。
最后:
了解 FUSE .这是棒极了。看这个
Hello World
FUSE module .运行它,玩它。下载 NTFS-3G 的源代码,这是当今大多数 GNU/Linux 发行版使用的 NTFS 驱动程序。它使用 fuse 。了解它的工作原理。
关于c - 在 Linux 中为 NTFS 执行 ls 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10905306/