使用 C++ 的 Ubuntu 中的文件搜索器 [关闭]
Posted
技术标签:
【中文标题】使用 C++ 的 Ubuntu 中的文件搜索器 [关闭]【英文标题】:Files seacher in Ubuntu Using C++ [closed] 【发布时间】:2012-10-06 09:27:57 【问题描述】:我打算用 C++ 为 Ubuntu OS 制作一个文件搜索器。我的原始算法(尚未在 C++ 中实现)花费大量时间,有时可能无法搜索文件,因此我决定在 OS 文件表/目录中搜索文件,因为所有文件的位置和名称文件和文件夹已经存在于其中。所以我的问题是:
是否有任何系统调用来访问 C++ 中的 Ubuntu 文件表/目录
【问题讨论】:
【参考方案1】:我不明白你的问题,因为 Ubuntu 没有引入新的文件系统或其他与用户空间相关的东西,所以你可以为 Ubuntu 编写代码,就像你可以为任何 GNU/linux 操作系统编写代码一样,但确实有很好的实用程序已经到位,例如 locate
和 find
。
【讨论】:
我知道这些终端命令,但我正在寻找制作这个程序的线索,以便我能够实际了解文件搜索软件的工作原理 请记住,这些是开源实用程序,如果您不喜欢终端方法,请浏览它们的源代码并尝试充分利用它们。 你也可以使用strace
来了解他们在做什么系统调用。【参考方案2】:
您应该知道 Ubuntu 只是 Linux 的一个发行版,而 Linux 又具有标准的 Unix 系统 API(通常称为“POSIX”)。因此,您最好使用术语“Linux”或“Unix”甚至“POSIX”而不是“Ubuntu”来询问/搜索。
在 Unix 中,用于检查目录的基本系统调用是:
opendir
、readdir
和 closedir
以及用于读取目录内名称的变体
stat
家族(stat
、fstat
、lstat
)用于从普通名称中获取真实信息(文件类型、大小等)。
如果您查看这些系统调用的手册页底部,您会在“SEE ALSO”部分找到更多相关的系统调用。
【讨论】:
我之所以提到 Ubuntu,是因为我认为 Ubuntu 的文件系统可能与其他基于 Unix 的操作系统不同.. Ubuntu 像任何其他 Linux 一样使用 ext4 文件系统。另外:文件系统的格式不会影响编程 API。该映射是内核的工作。以上是关于使用 C++ 的 Ubuntu 中的文件搜索器 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
开发环境Ubuntu 中使用 VSCode 开发 C/C++ ⑤ ( tasks.json 中的 args 数组配置分析 | 编译并执行 C++ 程序 )