【发布时间】:2011-11-08 18:13:11
【问题描述】:
我正在为类编写一个程序,我想知道一些代码的输出。我有一些这样的代码:
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 .. 可以让您在文件层次结构中上升,但我不知道为什么在读取子目录名称时会输出它。
我担心的原因是因为我想递归遍历所有文件,但是如果我遍历..,那里的第一个目录名称是.,这会导致循环。那么我该如何避免这种情况呢?
【问题讨论】:
-
它来自文件系统本身——在 C 之外。