Я использую вызов POSIX nftw()
для того, чтобы пересечь структуру каталогов. Структура каталогов является плоской - только 4 файла и никакие подкаталоги.
Однако, когда я называю nftw () большим количеством времен на этом плоском каталоге затем, я получаю сообщение об ошибке через некоторое время:
"too many open file handles".
Оказалось, что это происходит когда флаг FTW_CHDIR
используется.
Вы согласились бы, что это - ошибка в реализации Linux nftw ()?
ОБНОВЛЕНИЕ
Фиксация теперь доступна в glibc репозиториях.
вот некоторые ссылки на исходный код, который я использовал для тестирования:
ОБНОВЛЕНИЕ
Мне кажется, что с реализацией nftw
в Linux действительно что-то не так.
Я отправил отчет об ошибке, см. здесь
ОБНОВЛЕНИЕ : Исправление доступно в репозиториях glibc.
Такое же поведение наблюдается в Mac OS 10.6.2. Так что, вероятно, это часть спецификации, хотя я не понимаю, как именно.
Относительно Mac OS: отчет об ошибке отправлен в Apple как радар №7640283. (К сожалению, гиперссылка невозможна.)