Я пытаюсь отлаживать прямо сейчас на C, и мне любопытно, нормально ли вызывать opendir () несколько раз, не вызывая сначала вызов closedir (), потому что я пытаюсь запустить цикл для открытия подкаталогов, когда цикл while, который вызывает readdir () встречает их. И я предполагаю, что закрытие текущего каталога приведет к тому, что я потеряю возможность его прочитать.
Вы можете использовать opendir()
несколько раз. Просто держите DIR *
s и вызывайте closedir()
когда вы закончите с каждым.
Да, вы можете выполнять несколько вызовов opendir (). Будьте осторожны с символическими контурами ссылок, которые могут заставить вас попасть в бесконечный цикл и потреблять всю доступную память.
Вы должны быть осторожны, чтобы не пропустить DIR*
который вы собираете, но пока вы не нажмете на ограничение файлового дескриптора, у вас не должно возникнуть проблемы с одновременным opendir()
нескольких opendir()
,