在 CentOS 上,readdir 通常是 C 语言库函数,用于读取目录内容,而不是 Shell 命令。下面从 常见用法 给你说明。
readdir 是 POSIX 标准 C 函数,定义在:
#include <dirent.h>
用于读取一个已打开的目录流中的目录项。
#include <dirent.h>
struct dirent *readdir(DIR *dirp);
dirp:由 opendir() 打开的目录指针struct dirent *NULL#include <stdio.h>
#include <dirent.h>
int main() {
DIR *dir;
struct dirent *entry;
dir = opendir(".");
if (dir == NULL) {
perror("opendir");
return 1;
}
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
return 0;
}
gcc readdir_test.c -o readdir_test
./readdir_test
✅ CentOS 7 / 8 / Stream 都支持。
struct dirent {
ino_t d_ino; // inode 号
off_t d_off;
unsigned short d_reclen;
unsigned char d_type; // 文件类型(部分系统支持)
char d_name[256]; // 文件名
};
#include <sys/stat.h>
struct stat st;
lstat(entry->d_name, &st);
if (S_ISREG(st.st_mode)) {
printf("普通文件\n");
}
可能是:
opendir. 和 ..if (strcmp(entry->d_name, ".") == 0 ||
strcmp(entry->d_name, "..") == 0)
continue;
ls
或递归:
ls -R
| 场景 | 用法 |
|---|---|
| C 程序读取目录 | opendir + readdir + closedir |
| Shell 查看目录 | ls |
| 判断文件类型 | stat / lstat |
如果你是想:
可以直接告诉我,我给你具体示例。