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

发布于 2024-08-21 05:08:50 字数 921 浏览 8 评论 0原文

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

然而,当我在这个平面目录上多次调用 nftw() 时,过了一会儿我收到一条错误消息:

"too many open file handles".

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

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

更新

glibc 存储库中现已提供修复程序。

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

更新

  • MacOS-X 是受到该错误的影响
  • Solaris9、Solaris10 和 AIX 5.3 没有有该错误

I am using the POSIX call nftw() for traversing a directory structure. The directory structure is flat - only 4 files and no subdirectories.

However when I call nftw() a lot of times on this flat directory then I get an error message after a while:

"too many open file handles".

It turned out that this happens when the flag FTW_CHDIR is used.

Would you agree that it is a bug in the Linux implementation of nftw() ?

UPDATE

A fix is now available in the glibc repositories.

here are some links to the source code I have used for testing:

UPDATE

  • MacOS-X is also hit by the bug
  • Solaris9, Solaris10 and AIX 5.3 do not have the bug

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

友欢 2024-08-28 05:08:50

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

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

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

For me it looks like there is really something wrong with the nftw implementation on linux.

I have filed a bug report, see here

UPDATE: A fix is available in the glibc repositories now.

吻泪 2024-08-28 05:08:50

它在 Mac OS 10.6.2 上具有相同的行为。所以可能是规范的一部分,尽管我不知道具体是怎样的。

It has the same behaviour on Mac OS 10.6.2. So probably somehow part of the specification, though I don't see how exactly.

关于 Mac OS:以雷达 #7640283 的形式提交给 Apple 的错误报告。 (不幸的是,不可能有超链接。)

Regarding Mac OS: bugreport submitted to Apple as radar #7640283. (No hyperlink possible, unfortunately.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文