Что определяет порядок следования файлов при использовании ls без сортировки?

Что определяет порядок следования файлов при использовании ls без сортировки?

Порядок при использовании lswith -Uflag тот же самый, который я получаю при использовании библиотеки dirent.h в C и отображении имен файлов в цикле. Когда я отображаю d_offчлен структуры, direntчисла отображаются в порядке возрастания.

Является ли это d_offпричиной порядка файлов, и если да, то в чем именно? Я видел, что это описывается как смещение файлов, но я не уверен, что это значит.

заранее спасибо

решение1

От man 3 readdir:

d_off
   Значение, возвращаемое в d_off, такое же, как и возвращаемое вызовом telldir(3) в текущей позиции в потоке каталога. Имейте в виду, что, несмотря на его тип и имя, поле d_off редко является каким-либо смещением каталога в современных файловых системах. Приложения должны рассматривать это поле как непрозрачное значение, не делая никаких предположений о его содержимом; см. также telldir(3).

Другими словами, d_offи порядокэто одно и то же; это номер записи каталога, возвращаемый файловой системой для этого каталога.

Таким образом, порядок определяется самой файловой системой, которая может быть простой (например, в каталоге FAT12) или очень сложной (например, overlayFS поверх какой-либо сложной файловой системы).

Связанный контент