Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C++; 我计划在C++中为Ubuntu OS编写一个文件搜索器。我的原始算法(尚未在C++中实现)花费了大量时间,有时可能无法搜索文件,因此我决定在OS文件表/目录中搜索文件,因为所有文件和文件夹的位置和名称都已存在于其中。所以我的问题是:_C++_Linux_Ubuntu_Posix - Fatal编程技术网

使用C++; 我计划在C++中为Ubuntu OS编写一个文件搜索器。我的原始算法(尚未在C++中实现)花费了大量时间,有时可能无法搜索文件,因此我决定在OS文件表/目录中搜索文件,因为所有文件和文件夹的位置和名称都已存在于其中。所以我的问题是:

使用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”进行询问/搜索

是否有任何系统调用来访问C++中的Ubuntu文件表/目录?我不明白你的问题,因为Ubuntu没有引入新的文件系统或其他与用户空间相关的东西,所以你可以像为任何GNU/linux操作系统编码一样为Ubuntu编码,但是现在已经有了一些很好的实用程序,比如
locate
find

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

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

  • opendir
    readdir
    closedir
    以及用于读取目录中名称的变体

  • stat
    family(
    stat
    fstat
    lstat
    )用于从普通名称获取真实信息(文件类型、大小等)


如果您查看这些系统调用的手册页底部,您将在“另请参阅”部分找到更多相关的系统调用。

我知道这些终端命令,但我正在寻找制作此程序的线索,以便我能够实际了解文件搜索软件的工作原理请记住,这些是开源实用程序,如果你不喜欢终端方法,浏览他们的源代码,尽量从中得到最大的收获。你也可以使用
strace
来了解他们在做什么系统调用。我提到Ubuntu是因为我认为Ubuntu的文件系统可能与其他基于Unix的操作系统不同。Ubuntu使用ext4文件系统与其他Linux一样。另外:文件系统的格式不会影响编程API。映射是内核的工作。