gpt4 book ai didi

c - dirent条目是如何排序的?

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:12 24 4
gpt4 key购买 nike

我不知道 dirent 条目是如何排序的。例如,如果我有代码

DIR* dir = opendir("/some/directory");
struct dirent* entry;

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

这可能会输出如下内容:

abcdef
example3
..
.
123456789
example2
example1

如您所见,此输出未按字母顺序排列。所以,我想知道 dirent 条目 是如何排序的?是什么导致某些条目的优先级高于其他条目?

最佳答案

它们不是按字母顺序排列的;它们按照文件系统维护它们的顺序检索。

"file"目录仅包含文件名和 inode 编号的列表。对于某些文件系统类型,文件系统不希望将文件名/inode 值拆分成 block 。当文件系统从列表中添加或删除文件时,它可能会在其中一个 block 中找到空间。其他方案(例如列表中较早的常用文件名)也是可能的。

按文件名排序的列表取决于事物的排序方式:它可以与语言环境相关。 (文件系统不知道也不关心您的语言环境设置)。所以这个决定留给应用程序而不是文件系统本身。

有关其他评论,请参阅

关于c - dirent条目是如何排序的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30516546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com