【发布时间】:2012-10-06 09:27:57
【问题描述】:
我打算用 C++ 为 Ubuntu OS 制作一个文件搜索器。我的原始算法(尚未在 C++ 中实现)花费大量时间,有时可能无法搜索文件,因此我决定在 OS 文件表/目录中搜索文件,因为所有文件的位置和名称文件和文件夹已经存在于其中。所以我的问题是:
是否有任何系统调用来访问 C++ 中的 Ubuntu 文件表/目录
【问题讨论】:
我打算用 C++ 为 Ubuntu OS 制作一个文件搜索器。我的原始算法(尚未在 C++ 中实现)花费大量时间,有时可能无法搜索文件,因此我决定在 OS 文件表/目录中搜索文件,因为所有文件的位置和名称文件和文件夹已经存在于其中。所以我的问题是:
是否有任何系统调用来访问 C++ 中的 Ubuntu 文件表/目录
【问题讨论】:
我不明白你的问题,因为 Ubuntu 没有引入新的文件系统或其他与用户空间相关的东西,所以你可以为 Ubuntu 编写代码,就像你可以为任何 GNU/linux 操作系统编写代码一样,但确实有很好的实用程序已经到位,例如 locate 和 find。
【讨论】:
strace 来了解他们在做什么系统调用。
您应该知道 Ubuntu 只是 Linux 的一个发行版,而 Linux 又具有标准的 Unix 系统 API(通常称为“POSIX”)。因此,您最好使用术语“Linux”或“Unix”甚至“POSIX”而不是“Ubuntu”来询问/搜索。
在 Unix 中,用于检查目录的基本系统调用是:
opendir、readdir 和 closedir 以及用于读取目录内名称的变体
stat 家族(stat、fstat、lstat)用于从普通名称中获取真实信息(文件类型、大小等)。
如果您查看这些系统调用的手册页底部,您会在“SEE ALSO”部分找到更多相关的系统调用。
【讨论】: