在 Ubuntu(基于 Linux,使用 ext4 等文件系统) 上,opendir() 是区分大小写的。
具体说明如下:
Ubuntu 默认使用的文件系统(如 ext4、xfs、btrfs)文件名是区分大小写的:
Test/test/TEST/在文件系统中是 三个不同的目录。
因此:
DIR *dir = opendir("Test");
和
DIR *dir = opendir("test");
会打开 不同的目录(如果它们都存在的话)。
opendir() 只是按照你传入的路径字符串去文件系统查找:
NULL,errno = ENOENT如果你在 Ubuntu 上挂载了:
这些文件系统 不区分大小写,那么 opendir() 表现也会“看起来不区分大小写”,但这是 文件系统决定的,不是 opendir 本身的行为。
✅ Ubuntu 原生命名系统(ext4)+ opendir → 区分大小写
❌ opendir 本身没有“忽略大小写”的功能
如果你需要“不区分大小写地打开目录”,需要自己:
opendir(".")readdir() 遍历strcasecmp() 比较目录名需要我给你一个 不区分大小写打开目录的 C 示例 吗?