5

我正在使用 POSIX 调用nftw()来遍历目录结构。目录结构是扁平的——只有 4 个文件,没有子目录。

但是,当我在这个平面目录上多次调用 nftw() 时,一段时间后我会收到一条错误消息:

"too many open file handles".

事实证明,这是在FTW_CHDIR使用标志时发生的。

您是否同意这是 nftw() 的 Linux 实现中的一个错误?

更新

现在 glibc 存储库中提供了一个修复程序。

以下是我用于测试的源代码的一些链接:

更新

  • MacOS-X受到该错误的打击
  • Solaris9、Solaris10 和 AIX 5.3没有这个 bug
4

3 回答 3

6

nftw对我来说,Linux上的实现似乎确实有问题。

我已经提交了错误报告,请参见此处

更新:现在 glibc 存储库中提供了一个修复程序。

于 2010-02-10T22:36:56.447 回答
0

它在 Mac OS 10.6.2 上具有相同的行为。所以可能以某种方式成为规范的一部分,尽管我不知道具体如何。

于 2010-02-10T22:39:27.723 回答
0

关于 Mac OS:作为雷达 #7640283 提交给 Apple 的错误报告。(不幸的是,没有超链接。)

于 2010-02-11T23:35:08.310 回答