在 Linux 中,readdir 是一个用于读取目录内容的函数,通常在 C 语言编程中使用
以下是一个简单的示例,说明如何在 C 语言中使用 readdir 和 grep:
grep。在大多数 Linux 发行版中,它已经预装了。如果没有,可以使用以下命令安装:sudo apt-get install grep
list_files.c 的 C 语言源文件,并添加以下代码:#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
int main(int argc, char *argv[]) {
DIR *dir;
struct dirent *entry;
char search_pattern[256];
if (argc != 2) {
printf("Usage: %s <directory>\n", argv[0]);
return 1;
}
strcpy(search_pattern, argv[1]);
dir = opendir(argv[1]);
if (dir == NULL) {
perror("opendir");
return 1;
}
while ((entry = readdir(dir)) != NULL) {
if (strstr(entry->d_name, search_pattern) != NULL) {
printf("%s\n", entry->d_name);
}
}
closedir(dir);
return 0;
}
这个程序接受一个目录作为命令行参数,并列出该目录中所有包含指定字符串的文件名。
list_files.c:gcc list_files.c -o list_files
/etc 目录中查找包含 “conf” 的文件名,请运行:./list_files /etc | grep conf
这将输出 /etc 目录中所有包含 “conf” 字符串的文件名。