[英]Why do dots (“.” and “..”) appear when I print files from directory?
我正在使用C語言從兩個目錄中打印文件。 這是我的代碼:
char *list1[30], *list2[30];
int i=0, x=0;
struct dirent *ent, *ent1;
/* print all the files and directories within directory */
while ((ent = readdir (dirSource)) != NULL) {
list1[i] = ent->d_name;
i++;
}
i=0;
while((ent1 = readdir (dirDest)) != NULL) {
list2[i] = ent1->d_name;
i++;
}
while(x != i){
printf("Daemon - %s\n", list1[x]);
printf("Daemon1 - %s\n", list2[x]);
x++;
}
我可以打印所有文件,但是每次我在目錄中打印文件時,最終結果是這樣的:
守護程序-。 守護程序1-。 Daemon-.. Daemon1-.. Daemon-fich5 Daemon1-fich4 Daemon-fich3 Daemon1-fich3
我不明白為什么一開始會有點。 觀察:沒關系,但是我在筆上使用Ubuntu 14.04,這意味着每次我使用Ubuntu時,我都使用試用版,而不是在PC上使用雙啟動。
.
和..
是兩個特殊文件,它們位於Linux和其他類似Unix的系統的每個目錄中。 .
代表當前目錄,而..
代表父目錄。
Unix中的每個目錄都有該條目.
(表示當前目錄)和..
(父目錄)。 讓他們以“。”開頭。 它們是隱藏文件; ls
通常不會顯示它們,除非您使用“ -a”選項。
看到:
[:~/tmp/lilla/uff] % ls -l
total 0
-rw-rw-r-- 1 romano romano 0 May 17 18:48 a
-rw-rw-r-- 1 romano romano 0 May 17 18:48 b
[:~/tmp/lilla/uff] % ls -la
total 8
drwxrwxr-x 2 romano romano 4096 May 17 18:48 .
drwxrwxr-x 3 romano romano 4096 May 17 18:47 ..
-rw-rw-r-- 1 romano romano 0 May 17 18:48 a
-rw-rw-r-- 1 romano romano 0 May 17 18:48 b
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.