使用 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 操作系统编写代码一样,但确实有很好的实用程序已经到位,例如 locatefind

【讨论】:

我知道这些终端命令,但我正在寻找制作这个程序的线索,以便我能够实际了解文件搜索软件的工作原理 请记住,这些是开源实用程序,如果您不喜欢终端方法,请浏览它们的源代码并尝试充分利用它们。 你也可以使用strace 来了解他们在做什么系统调用。【参考方案2】:

您应该知道 Ubuntu 只是 Linux 的一个发行版,而 Linux 又具有标准的 Unix 系统 API(通常称为“POSIX”)。因此,您最好使用术语“Linux”或“Unix”甚至“POSIX”而不是“Ubuntu”来询问/搜索。

在 Unix 中,用于检查目录的基本系统调用是:

opendirreaddirclosedir 以及用于读取目录内名称的变体

stat 家族(statfstatlstat)用于从普通名称中获取真实信息(文件类型、大小等)。

李>

如果您查看这些系统调用的手册页底部,您会在“SEE ALSO”部分找到更多相关的系统调用。

【讨论】:

我之所以提到 Ubuntu,是因为我认为 Ubuntu 的文件系统可能与其他基于 Unix 的操作系统不同.. Ubuntu 像任何其他 Linux 一样使用 ext4 文件系统。另外:文件系统的格式不会影响编程 API。该映射是内核的工作。

以上是关于使用 C++ 的 Ubuntu 中的文件搜索器 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

开发环境Ubuntu 中使用 VSCode 开发 C/C++ ⑤ ( tasks.json 中的 args 数组配置分析 | 编译并执行 C++ 程序 )

ubuntu vscode 写一个C++程序

c++文件夹只搜索

在C++中搜索和替换txt文件中的字符串

C 和 C++ 中的套接字解​​释

ubuntu 中的 C++(Linux 平台)