我正在寫一個類的程序,我想知道一些代碼的輸出。我有一些像這樣的代碼:C中的「Double dot」目錄名?
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之外 – 2011-09-01 21:35:21