在 Debian(以及其他 Linux 发行版)里,opendir 是 C 语言标准库(POSIX)中的函数,不是命令行命令。下面从概念、使用方法、示例、编译运行几个方面说明。
opendir 用于打开一个目录,返回一个 DIR* 指针,配合 readdir、closedir 使用。
头文件:
#include <dirent.h>
函数原型:
DIR *opendir(const char *name);
NULL,并设置 errnoopendir() // 打开目录
readdir() // 读取目录项
closedir() // 关闭目录
#include <stdio.h>
#include <dirent.h>
int main(int argc, char *argv[]) {
const char *path = argc > 1 ? argv[1] : ".";
DIR *dir = opendir(path);
if (dir == NULL) {
perror("opendir");
return 1;
}
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
return 0;
}
sudo apt update
sudo apt install gcc
gcc listdir.c -o listdir
./listdir /etc
| 情况 | 原因 |
|---|---|
opendir 返回 NULL |
目录不存在、权限不足 |
只看到 . 和 .. |
正常现象 |
| 中文文件名乱码 | 终端编码不是 UTF-8 |
ls
import os
for name in os.listdir("."):
print(name)
如果你是想:
可以告诉我具体需求,我可以给你对应示例。