nftw()
ディレクトリ構造をトラバースするために POSIX 呼び出しを使用しています。ディレクトリ構造はフラットで、4 つのファイルのみで、サブディレクトリはありません。
ただし、このフラット ディレクトリで nftw() を何度も呼び出すと、しばらくするとエラー メッセージが表示されます。
"too many open file handles".
これは、フラグを使用すると発生することが判明しましたFTW_CHDIR
。
nftw() の Linux 実装のバグであることに同意しますか?
アップデート
修正が glibc リポジトリで利用できるようになりました。
テストに使用したソースコードへのリンクを次に示します。
- main.cpp: http://sourceware.org/bugzilla/attachment.cgi?id=4586&action=view
- Makefile: http://sourceware.org/bugzilla/attachment.cgi?id=4587&action=view
アップデート
- MacOS-Xもバグに見舞われる
- Solaris9、Solaris10、AIX 5.3 にはこのバグはありません