首页 > 解决方案 > nftw的功能替换

问题描述

全部,

据此 ntfw 在 POSIX.1-2008 中已过时。

这个功能有替代品吗?还是我应该全面使用其他东西?

蒂亚!

标签: posixfile-traversal

解决方案


从您引用的链接:

POSIX.1-2001、SVr4、SUSv1。POSIX.1-2008将ftw()标记为已过时。...

在某些系统上,ftw() 永远不会使用 FTW_SL,在其他系统上,FTW_SL 仅发生在不指向现有文件的符号链接上,而在其他系统上,ftw() 将再次对每个符号链接使用 FTW_SL。对于可预测的控制,请使用 nftw()。

我的解释是,ftw 已经过时,取而代之的是 nftw。所以用那个。

就个人而言,我只会实现我自己的。我读过的每一本入门级 CS 教科书都涵盖了文件系统遍历。我将使用 dir 句柄的 fifo 队列和迭代广度优先循环来避免不必要的函数调用开销,无论是在遍历还是在每个文件挂钩中(在 ftw 中作为函数指针实现)。


推荐阅读