3

我正在编写一个使用 inotify 来监视文件访问的守护程序,并且在递归搜索中不会遗漏任何内容至关重要。我发现了这个有趣的想法并开始实施它。

ftw() 和 ftw64() 不使用广度优先算法,它更多的是“预购”。nftw() 给了我深度优先的选项,但我担心上层叶子的比赛。

我希望我错过了一些东西,也许是 GNU 扩展?还是我只是想用类型安全的回调来实现我自己的(我真的不想这样做)?

或者,对于这种类型的应用程序,我对广度优先优于深度优先的优势的理解是否错误?

4

1 回答 1

1

查看“ nftw() ”的规范,FTW_DEPTH 标志执行后序(深度优先)遍历,在访问目录节点之前访问子目录。

我认为任何标准算法都不会进行广度优先搜索。

想必你应该基于 nftw() 接口编写一个 bfftw() 。请注意,在进行扫描时,您必须将要递归访问的项目(目录)排队。

于 2009-10-30T03:39:51.980 回答