我正在为课程编写一个程序,我想知道一些代码的输出。我有一些这样的代码:
DIR* dir = opendir(".");
struct dirent* reader;
while ((reader = readdir(dir)) != NULL)
{
//print the name of the path found by reader.
}
现在这一切正常,但我注意到前两个列表总是:
.
..
//rest of files here
现在我假设第一个点.
只是当前目录的名称,但第二个双点是做什么用的?我知道cd ..
可以让你在文件层次结构中上升,但我不知道为什么在读取子目录名称时会输出它。
我担心的原因是因为我想递归地遍历所有文件,但是如果我遍历..
,则其中的第一个目录名称是.
,这会导致循环。那么我该如何避免这种情况呢?