LINUX.ORG.RU

Ошибка при многократном открытии файлов


0

1

Есть около миллиона файлов на жестком диске, рассортированных по папкам. Каждый файл объемом по 4кБ. В своей программе осуществляю последовательное открытие файлов(fopen(«/mnt/papki»,«r»)), чтение оттуда(fgets()) и закрытие(fclose()). После прочтения из последнего(миллионного) файла, считывание начинается сначала. И так программа нормально работает в течение 3,5-4 часов, проходя один цикл примерно за 10 минут. Потом fopen возвращает NULL при открытии некоторых файлов( хотя в предыдущих циклах успешно их открывала...) Почему?

Ответ на: комментарий от cyclon

Спасибо! Заодно буду проверять, что возвращает fclose...

Vitaly1988
() автор топика

> Потом fopen возвращает NULL при открытии некоторых файлов( хотя в предыдущих циклах успешно их открывала...) Почему?

Об этом Вам расскажет переменная errno и функция perror

Eshkin_kot ★★
()

>Есть около миллиона файлов на жестком диске, рассортированных по папкам.

А каталоги ты чем обходишь? opendir? А closedir/аналог вызываешь? Ну и да, errno надо обязательно проверять.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

Каждый раз при открытии файла прописываю полный путь к нему. Как оказалось, проблема была в другой части кода(не моей) - там не использовали fclose(), а моим файлам, наверно, в какой-то момент просто не хватало места. Сейчас все работает. Всем спасибо!

Vitaly1988
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.