写一个Linux c语言打印指定目录下文件名的函数
时间: 2024-03-20 10:42:50 浏览: 93
可以使用 `opendir()` 和 `readdir()` 函数来实现该功能。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
void list_files(const char *path) {
DIR *dir;
struct dirent *entry;
dir = opendir(path);
if (dir == NULL) {
perror("opendir");
exit(EXIT_FAILURE);
}
while ((entry = readdir(dir)) != NULL) {
if (entry->d_type == DT_REG) { // 如果是普通文件
printf("%s\n", entry->d_name);
}
}
closedir(dir);
}
```
在该函数中,首先通过 `opendir()` 函数打开指定目录,如果打开失败,则输出错误信息并退出程序。然后通过 `readdir()` 函数循环读取目录下的文件项,对于每个文件项,如果是一个普通文件,则输出文件名。最后通过 `closedir()` 函数关闭目录。需要注意的是,这里只输出了普通文件的文件名,如果需要输出其他类型的文件名,需要修改 `if` 语句中的条件判断。
阅读全文