【发布时间】:2012-02-16 22:14:22
【问题描述】:
可以对使用opendir() 函数获得的目录流中的条目顺序做出任何假设吗?例如,. 和 .. 是否总是前两个条目?什么会导致订单发生变化?
【问题讨论】:
-
这个问题是关于 opendir() 而不是 readdir()。
可以对使用opendir() 函数获得的目录流中的条目顺序做出任何假设吗?例如,. 和 .. 是否总是前两个条目?什么会导致订单发生变化?
【问题讨论】:
Posix 说您不能依赖 . 和 .. 作为前两个条目。
来自The Open Group Base Specifications Issue 6:
dot 和 dot-dot 的目录条目是可选的。这卷 IEEE Std 1003.1-2001 没有提供一种先验测试它们是否存在的方法,因为必须编写一个可移植的应用程序来查找(并且通常忽略)这些条目。编写假定它们是前两个条目的代码并不总是有效,因为许多实现允许它们与前两个条目不同,在它们之前有一个“正常”条目。
【讨论】: