¿Qué determina cómo se ordenan los archivos cuando se usa ls sin ordenar?

¿Qué determina cómo se ordenan los archivos cuando se usa ls sin ordenar?

El orden cuando lo uso lscon -Ubandera es el mismo orden que obtengo cuando uso la biblioteca dirent.h en C y muestro los nombres de los archivos en un bucle. Cuando muestro d_offel miembro de la direntestructura, los números parecen estar en orden ascendente.

¿Es d_offel motivo del orden de los archivos y, de ser así, cuál es exactamente? Vi que se describía como desplazamiento de archivo, pero no estoy seguro de lo que eso significa.

gracias de antemano

Respuesta1

De man 3 readdir:

quitarse
   El valor devuelto en d_off es el mismo que se devolvería llamando a telldir(3) en la posición actual en la secuencia del directorio. Tenga en cuenta que, a pesar de su tipo y nombre, el campo d_off rara vez es un tipo de desplazamiento de directorio en los sistemas de archivos modernos. Las aplicaciones deben tratar este campo como un valor opaco, sin hacer suposiciones sobre su contenido; ver también telldir(3).

En otras palabras, d_offy el ordenson lo mismo; es el número de la entrada del directorio devuelto por el sistema de archivos para ese directorio.

Por lo tanto, el orden lo define el propio sistema de archivos, y puede ser simple (por ejemplo, en un directorio FAT12) o muy complejo (por ejemplo, un FS superpuesto sobre algún sistema de archivos complejo).

información relacionada