簡體   English   中英

從目錄打印文件時,為什么出現點(“。”和“ ..”)?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM