El orden cuando lo uso ls
con -U
bandera 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_off
el miembro de la dirent
estructura, los números parecen estar en orden ascendente.
¿Es d_off
el 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_off
y 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).