Linux 如何递归遍历根目录
我正在编写纯C应用程序,它应该能够递归地遍历某些目录。当我将Linux 如何递归遍历根目录,linux,filesystems,traversal,tree-traversal,Linux,Filesystems,Traversal,Tree Traversal,我正在编写纯C应用程序,它应该能够递归地遍历某些目录。当我将/设置为此目录并在某个时间启动应用程序时,我会得到lstat()的失败-我会得到目录中的节点列表,稍后在其中一些节点上执行lstat()时,它会失败。这通常发生在/proc文件系统中 我知道这是一个可以经常更改的动态文件系统 如何遍历这些文件系统?在任何时候获取快照(目录节点)都可能不同于文件系统的实际状态。 另外,find/-iname“*”不会失败并显示文件,包括/proc对不起,这听起来像是一个愚蠢的问题,但您使用哪种语言编写应用
/
设置为此目录并在某个时间启动应用程序时,我会得到lstat()
的失败-我会得到目录中的节点列表,稍后在其中一些节点上执行lstat()
时,它会失败。这通常发生在/proc
文件系统中
我知道这是一个可以经常更改的动态文件系统
如何遍历这些文件系统?在任何时候获取快照(目录节点)都可能不同于文件系统的实际状态。
另外,
find/-iname“*”
不会失败并显示文件,包括/proc
对不起,这听起来像是一个愚蠢的问题,但您使用哪种语言编写应用程序?纯C应用程序,使用libc和glib库。'find'只获取目录的条目;它不单独统计条目。如果您对条目进行了统计(“find/proc/| xargs stat>/dev/null”),您将获得过时文件的eNot。但是如果find是递归遍历的,这怎么可能呢?要获取目录“find”的条目,应该知道它是目录。如何在不检查/var和更高版本的/var/tmp/也是目录的情况下获取/var/tmp/test目录的条目?