全部,
据此, ntfw 在 POSIX.1-2008 中已过时。
这个功能有替代品吗?还是我应该全面使用其他东西?
蒂亚!
从您引用的链接:
POSIX.1-2001、SVr4、SUSv1。POSIX.1-2008将ftw()标记为已过时。...
在某些系统上,ftw() 永远不会使用 FTW_SL,在其他系统上,FTW_SL 仅发生在不指向现有文件的符号链接上,而在其他系统上,ftw() 将再次对每个符号链接使用 FTW_SL。对于可预测的控制,请使用 nftw()。
我的解释是,ftw 已经过时,取而代之的是 nftw。所以用那个。
就个人而言,我只会实现我自己的。我读过的每一本入门级 CS 教科书都涵盖了文件系统遍历。我将使用 dir 句柄的 fifo 队列和迭代广度优先循环来避免不必要的函数调用开销,无论是在遍历还是在每个文件挂钩中(在 ftw 中作为函数指针实现)。