ls
与flag 一起使用时的顺序-U
与我在 C 中使用 dirent.h 库并在循环中显示文件名时得到的顺序相同。当我显示结构体d_off
成员时dirent
,数字似乎按升序排列。
d_off
文件顺序的原因是什么?如果是的话,具体是什么?我看到它被描述为文件偏移量,但我不确定这意味着什么。
提前致谢
答案1
从man 3 readdir
:
脱
d_off 中返回的值与在目录流中的当前位置调用telldir(3) 返回的值相同。请注意,尽管有其类型和名称,d_off 字段很少是现代文件系统上的任何类型的目录偏移量。应用程序应将此字段视为不透明值,对其内容不做任何假设;另请参见telldir(3)。
换句话说,d_off
以及顺序是同一件事;它是文件系统为该目录返回的目录条目的编号。
因此,顺序是由文件系统本身定义的 - 这可能很简单(例如,在 FAT12 目录中)或非常复杂(例如,某些复杂文件系统上的 OverlayFS)。