'.' 是什么意思 在 c 中表示作为 opendir 的参数?

Hir*_*rah 2 c operating-system

“这是代码。'.'是什么意思 里面“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; 
} 
Run Code Online (Sandbox Code Playgroud)

Som*_*ude 7

这并不是真正与编程相关,而是与操作系统相关。

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

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

那么opendir(".")要做的就是打开当前目录。


正如评论中提到的,“当前”目录不必是可执行程序所在的目录。它是进程的当前工作目录,可能不同。这取决于程序的启动方式和位置,以及程序是否更改了自己的工作目录(问题中的程序没有更改)。