
A ordem ao usar ls
with -U
flag é a mesma ordem que obtenho ao usar a biblioteca dirent.h em C e exibir nomes de arquivos em um loop. Quando exibo d_off
o membro da dirent
estrutura, os números parecem estar em ordem crescente.
Esse é d_off
o motivo da ordem dos arquivos e, em caso afirmativo, qual é exatamente? Eu vi isso sendo descrito como deslocamento de arquivo, mas não tenho certeza do que isso significa.
desde já, obrigado
Responder1
De man 3 readdir
:
d_desligado
O valor retornado em d_off é o mesmo que seria retornado chamando Telldir(3) na posição atual no fluxo do diretório. Esteja ciente de que, apesar de seu tipo e nome, o campo d_off raramente é qualquer tipo de deslocamento de diretório em sistemas de arquivos modernos. Os aplicativos devem tratar esse campo como um valor opaco, sem fazer suposições sobre seu conteúdo; veja também Telldir(3).
Em outras palavras, d_off
e a ordenaçãosão a mesma coisa; é o número da entrada do diretório retornado pelo sistema de arquivos desse diretório.
A ordem é, portanto, definida pelo próprio sistema de arquivos - e isso pode ser simples (digamos, em um diretório FAT12) ou muito complexo (digamos, um overlayFS sobre algum sistema de arquivos complexo).