温馨提示×

centos readdir能遍历吗

小樊
45
2026-09-18 07:18:26
栏目: 智能运维

在 CentOS(本质是 Linux)上,readdir 是可以用来遍历目录的。

1. 什么是 readdir

readdir 是 POSIX 标准 C 库函数(在 <dirent.h> 中),用于读取目录中的条目。

#include <dirent.h>
#include <stdio.h>

int main() {
    DIR *dir = opendir(".");
    struct dirent *entry;

    while ((entry = readdir(dir)) != NULL) {
        printf("%s\n", entry->d_name);
    }

    closedir(dir);
    return 0;
}

2. CentOS 上是否支持

✅ 完全支持

  • CentOS 基于 Linux,使用 glibc
  • readdir / readdir_r / readdir64 都可用
  • 适用于 ext4、xfs、nfs 等文件系统

3. 注意事项

  • readdir 不是递归的,只遍历当前目录
  • 会包含 . 和 ..
  • 多线程环境建议使用 readdir_r(旧)或 readdir + 线程局部(新 glibc)
  • 遍历大量文件时注意性能(可考虑 getdents)

4. 递归遍历示例思路

if (entry->d_type == DT_DIR) {
    // 递归调用遍历子目录
}

如果你是想问:

  • shell 里能不能用 readdir
  • Python / Java 是否等价
  • readdir 性能或权限问题

可以告诉我具体场景。

0 踩