Можно ли повторно использовать opendir в C? - PullRequest
2 голосов
/ 16 ноября 2009

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

Ответы [ 3 ]

5 голосов
/ 16 ноября 2009

Вы можете использовать opendir() повторно. Просто оставьте свои DIR * и звоните closedir(), когда закончите с каждым.

2 голосов
/ 16 ноября 2009

Да, вы можете сделать несколько вызовов opendir (). Остерегайтесь символьных циклов связи, которые могут привести к бесконечному циклу и потреблению всей доступной памяти.

1 голос
/ 16 ноября 2009

Вы должны быть осторожны, чтобы не пропустить DIR*, который вы собираете, но до тех пор, пока вы не достигнете предела файлового дескриптора, у вас не должно возникнуть проблем с открытием нескольких opendir(). в то же время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...