我正在使用 POSIX 调用nftw()
来遍历目录结构。目录结构是扁平的——只有 4 个文件,没有子目录。
但是,当我在这个平面目录上多次调用 nftw() 时,一段时间后我会收到一条错误消息:
"too many open file handles".
事实证明,这是在FTW_CHDIR
使用标志时发生的。
您是否同意这是 nftw() 的 Linux 实现中的一个错误?
更新
现在 glibc 存储库中提供了一个修复程序。
以下是我用于测试的源代码的一些链接:
- main.cpp: http: //sourceware.org/bugzilla/attachment.cgi ?id=4586&action=view
- 制作文件:http : //sourceware.org/bugzilla/attachment.cgi ?id=4587&action=view
更新
- MacOS-X也受到该错误的打击
- Solaris9、Solaris10 和 AIX 5.3没有这个 bug