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

5 linux gcc posix glibc g++

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

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

"too many open file handles".
Run Code Online (Sandbox Code Playgroud)

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

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

UPDATE

现在可以在glibc存储库中找到修复程序.

这里有一些我用于测试的源代码的链接:

UPDATE

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

小智 6

对我来说,看起来nftwLinux 上的实现确实有问题.

我已经提交了一份错误报告,请看这里

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