c - 当我从目录打印文件时,为什么会出现点 ("."和 "..")?

标签 c directory printf readdir

我正在使用 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 - 。 守护进程-.. 守护进程 1 - .. 守护进程-fich5 Daemon1 - fich4 守护进程-fich3 Daemon1 - fich3

我不明白为什么开头有点。 Obs.:我不介意,但我在笔上使用 Ubuntu 14.04,这意味着每次我使用 Ubuntu 时,我都会使用试用版而不是在我的电脑上使用双启动。

最佳答案

... 是两个特殊文件,它们存在于 Linux 和其他类 Unix 系统的每个目录中。 .代表当前目录,..代表父目录。

关于c - 当我从目录打印文件时,为什么会出现点 ("."和 "..")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23717515/

相关文章:

c - 数组在循环中如何工作?

c - Serial.print 只打印一次 Arduino

Python:如何将文件夹列表(带有子文件夹)移动到新目录

c++ - 有没有更好的方法从字符串创建目录? cpp,创建目录,stringstream,字符串。

c - 使用 clock() 的延迟函数

java - 如何使用输入输出字符串中的 5 个字符并将它们间隔开

c - gcc -mno-sse2 四舍五入

c - C函数的原型(prototype)和定义中都需要static关键字吗?

在 C 中使用循环创建目录和文件

php - 带有数组参数而不是变量的 printf/sprintf