nftw(FTW_CHDIR)中的文件描述符泄漏?

时间:2010-02-10 21:10:56

标签: linux gcc g++ posix glibc

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

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

"too many open file handles".

事实证明,当使用标志FTW_CHDIR时会发生这种情况。

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

更新

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

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

更新

  • MacOS-X 点击了
  • Solaris9,Solaris10和AIX 5.3 有错误

3 个答案:

答案 0 :(得分:6)

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

我已提交错误报告,请参阅here

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

答案 1 :(得分:0)

在Mac OS 10.6.2上具有相同的行为。所以可能在某种程度上是规范的一部分,虽然我没有看到究竟如何。

答案 2 :(得分:0)

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