openlang

Открытие файлов на Raspberry Pi 4

На Raspberry Pi 4 я вызываю fopen в цикле for, чтобы читать файлы из определённого каталога, всего их больше 1200. После некоторого количества итераций fopen перестаёт открывать следующий файл для чтения. Как с этим разобраться?

Переведено с английскогоПоказать оригинал

Разговор продолжается 2

Следуя доводам
  1. Ссылка на ответ

    После некоторого количества итераций fopen перестаёт открывать следующий файл для чтения.

    Предположу, что вы забываете вызывать fclose после работы с файлами, поэтому в конце концов исчерпывается память или запас файловых дескрипторов.

    Как с этим разобраться?

    Не забывайте вызывать fclose для этих файлов.

    Переведено с английскогоПоказать оригинал
  2. Ссылка на ответ

    При открытии файла через fopen система назначает ему файловый дескриптор. Количество таких дескрипторов ограничено. Судя по быстрому поиску в google, microsoft обычно предоставляет 640 файловых дескрипторов. Сам файл также попадает в память. Поэтому открытие большого количества файлов может довольно быстро исчерпать память. Закрывайте каждый файл, когда закончите с ним работать. С несколькими файлами это обычно не вызывает затруднений. Когда, как у вас, нужны тысячи файлов, закрывать каждый следует сразу после завершения его использования.

    Переведено с английскогоПоказать оригинал

Другие стороны того же вопроса

  1. Резервирует ли Go сигналы SIGUSR1 и SIGUSR2?

    Уважаемые разработчики, мы хотим запускать приложение на go под dmtcp (на GitHub размещён dmtcp/dmtcp, проект распределённых…

    Ответы 2Последняя активность go
  2. Как остановить сервер inets?

    Здравствуйте, У меня довольно простой вопрос об inets (который, кстати, очень удобен, поскольку не требует дополнительных зав…

    Ответы 2Последняя активность erlang