介绍
在本实验中,我们将使用 dirent.h
头文件创建一个 C 程序,用于列出目录中的所有文件。
注意:你需要自己创建文件
~/project/main.c
,以便练习编码并学习如何使用 gcc 编译和运行它。
cd ~/project
## 创建 main.c
touch main.c
## 编译 main.c
gcc main.c -o main
## 运行 main
./main
在本实验中,我们将使用 dirent.h
头文件创建一个 C 程序,用于列出目录中的所有文件。
注意:你需要自己创建文件
~/project/main.c
,以便练习编码并学习如何使用 gcc 编译和运行它。
cd ~/project
## 创建 main.c
touch main.c
## 编译 main.c
gcc main.c -o main
## 运行 main
./main
我们需要在程序的开头包含标准输入/输出和 dirent 头文件,代码如下:
#include <stdio.h>
#include <dirent.h>
main()
函数是我们程序的入口点。程序的执行从这里开始。我们还将声明类型为 DIR
的目录指针 d
和类型为 struct dirent
的目录条目指针 dir
。
int main(void)
{
DIR *d;
struct dirent *dir;
/*Your code goes here*/
return 0;
}
我们将使用 opendir()
函数打开所需的目录。这里的点号(.)表示当前目录。
d = opendir(".");
我们将使用 readdir()
函数读取目录中的每个条目。在这里,我们检查目录指针是否为 NULL。如果不是 NULL,我们将打印目录中存在的所有文件。
if (d)
{
while ((dir = readdir(d)) != NULL)
{
printf("%s\n", dir->d_name);
}
closedir(d);
}
以下是程序的完整代码:
#include<stdio.h>
#include<dirent.h>
int main(void)
{
DIR *d;
struct dirent *dir;
d = opendir(".");
if (d)
{
while ((dir = readdir(d)) != NULL)
{
printf("%s\n", dir->d_name);
}
closedir(d);
}
return(0);
}
在本实验中,我们学习了如何创建一个 C 程序来列出目录中所有文件的名称。我们使用了 dirent.h
头文件中的函数来实现这一功能。通过使用该程序,我们可以轻松获取指定目录中所有文件的名称。