温馨提示×

ubuntu readdir是什么

小樊
49
2026-10-09 13:24:22
栏目: 智能运维

在 Ubuntu(Linux)系统中,readdir 通常有两种常见含义,取决于你是在命令行还是**编程(C 语言)**环境中提到它:


一、作为 C 语言函数:readdir()

readdir 是 POSIX 标准中用于读取目录内容的函数,定义在头文件:

#include <dirent.h>

作用

遍历一个已经打开的目录,每次读取一个目录项(文件或子目录)。

基本用法示例(C 语言)

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

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

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

    closedir(dir);
    return 0;
}

相关函数

  • opendir():打开目录
  • readdir():读取目录项
  • closedir():关闭目录
  • readdir_r():线程安全版本(已逐渐废弃)

struct dirent 常用字段

char d_name[];   // 文件名
ino_t d_ino;     // inode 号

二、作为系统调用 / 底层接口

在更底层,Linux 提供了:

  • getdents() / getdents64()(系统调用)
  • readdir() 是 glibc 对这些系统调用的封装

可以用 strace 查看:

strace ls

你会看到 getdents64 被调用。


三、和 shell 命令的区别

readdir 不是 shell 命令,如果你在终端直接输入:

readdir

通常会报错:

command not found

在 shell 中查看目录内容应使用:

ls

或

find

总结

场景 readdir 是什么
C 编程 读取目录内容的函数
系统层面 对 getdents 的封装
Shell 不是命令,不能用

如果你是想问 “Ubuntu 下怎么读取目录”、“readdir 和 ls 的区别”,或者 “readdir 在 Python / C++ 中怎么用”,可以告诉我具体场景。

0 踩