我正在尝试在C中进行调试,我很好奇,如果可以反复调用opendir()而不必先调用closedir(),因为我试图运行一个循环来打开子目录调用readdir()的循环遇到它们。我假设关闭当前目录会导致我无法读取它。
答案 0 :(得分:5)
您可以反复使用opendir()
。只需保留DIR *
s并在完成每项操作后致电closedir()
。
答案 1 :(得分:2)
是的,你可以做多个opendir()调用。警惕符号链接循环,这可能导致您进入无限循环并消耗所有可用内存。
答案 2 :(得分:1)
您必须小心不要泄漏您正在收集的DIR*
,但只要您没有达到文件描述符限制,就不应该有多个{{opendir()
1}}同时打开。