“这是代码。'是什么意思。 “opendir('。')”内部是否指定到当前目录?

#include <stdio.h>
#include <dirent.h>
int main(void)
{
struct dirent *de;  // Pointer for directory entry

// opendir() returns a pointer of DIR type.
DIR *dr = opendir(".");

if (dr == NULL)  // opendir returns NULL if couldn't open directory
{
    printf("Could not open current directory" );
    return 0;
}


while ((de = readdir(dr)) != NULL)
        printf("%s\n", de->d_name);

closedir(dr);
return 0;
}

最佳答案

这实际上与编程无关,但与操作系统有关。

在大多数操作系统上,文件系统具有父目录和当前目录的概念。

父目录通常使用..表示法,而当前目录使用.表示法。

因此,opendir(".")要做的是打开当前目录。

并且如注释中所述,“当前”目录不必是可执行程序所在的目录。这是该过程的当前working directory,可能有所不同。这取决于程序的启动方式和启动位置,以及程序是否更改了自己的工作目录(问题中的程序未更改)。

关于c - '.'在c中代表opendir的参数是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59983516/

10-10 05:16