使用C++; 我计划在C++中为Ubuntu OS编写一个文件搜索器。我的原始算法(尚未在C++中实现)花费了大量时间,有时可能无法搜索文件,因此我决定在OS文件表/目录中搜索文件,因为所有文件和文件夹的位置和名称都已存在于其中。所以我的问题是:
是否有任何系统调用来访问C++中的Ubuntu文件表/目录?我不明白你的问题,因为Ubuntu没有引入新的文件系统或其他与用户空间相关的东西,所以你可以像为任何GNU/linux操作系统编码一样为Ubuntu编码,但是现在已经有了一些很好的实用程序,比如使用C++; 我计划在C++中为Ubuntu OS编写一个文件搜索器。我的原始算法(尚未在C++中实现)花费了大量时间,有时可能无法搜索文件,因此我决定在OS文件表/目录中搜索文件,因为所有文件和文件夹的位置和名称都已存在于其中。所以我的问题是:,c++,linux,ubuntu,posix,C++,Linux,Ubuntu,Posix,是否有任何系统调用来访问C++中的Ubuntu文件表/目录?我不明白你的问题,因为Ubuntu没有引入新的文件系统或其他与用户空间相关的东西,所以你可以像为任何GNU/linux操作系统编码一样为Ubuntu编码,但是现在已经有了一些很好的实用程序,比如locate和find你应该知道Ubuntu只是Linux的一个发行版,Linux也有一个标准的Unix系统API(通常称为“POSIX”)。因此,您最好使用术语“Linux”或“Unix”甚至“POSIX”而不是“Ubuntu”进行询问/搜索
locate
和find
你应该知道Ubuntu只是Linux的一个发行版,Linux也有一个标准的Unix系统API(通常称为“POSIX”)。因此,您最好使用术语“Linux”或“Unix”甚至“POSIX”而不是“Ubuntu”进行询问/搜索
在Unix中,检查目录的基本系统调用有:
、opendir
和readdir
以及用于读取目录中名称的变体closedir
family(stat
,stat
,fstat
)用于从普通名称获取真实信息(文件类型、大小等)lstat
如果您查看这些系统调用的手册页底部,您将在“另请参阅”部分找到更多相关的系统调用。我知道这些终端命令,但我正在寻找制作此程序的线索,以便我能够实际了解文件搜索软件的工作原理请记住,这些是开源实用程序,如果你不喜欢终端方法,浏览他们的源代码,尽量从中得到最大的收获。你也可以使用
strace
来了解他们在做什么系统调用。我提到Ubuntu是因为我认为Ubuntu的文件系统可能与其他基于Unix的操作系统不同。Ubuntu使用ext4文件系统与其他Linux一样。另外:文件系统的格式不会影响编程API。映射是内核的工作。