在 CentOS 系统中,使用 readdir 函数读取目录内容时,可以通过编程的方式排除特定文件类型。以下是一个使用 C 语言编写的示例,展示了如何在读取目录时排除特定文件类型(例如,排除所有 .txt 文件):
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
int main() {
    DIR *dir;
    struct dirent *entry;
    dir = opendir("."); // 打开当前目录
    if (dir == NULL) {
        perror("opendir");
        exit(EXIT_FAILURE);
    }
    while ((entry = readdir(dir)) != NULL) {
        // 检查文件扩展名是否为 .txt
        if (strstr(entry->d_name, ".txt") == NULL) {
            printf("%s\n", entry->d_name);
        }
    }
    closedir(dir);
    return 0;
}
在这个示例中,我们使用 opendir 函数打开当前目录,然后使用 readdir 函数逐个读取目录中的文件。通过 strstr 函数检查文件名是否包含 .txt 字符串,如果不包含,则输出文件名。
要排除其他类型的文件,只需将 strstr(entry->d_name, ".txt") == NULL 中的 ".txt" 替换为要排除的文件扩展名即可。
编译并运行此程序,它将输出当前目录中除 .txt 文件之外的所有文件。