stat () es una llamada al sistema Unix que devuelve atributos de archivo sobre un inodo . La semántica de stat () varía entre sistemas operativos . Como ejemplo, elcomando ls de Unix usa esta llamada al sistema para recuperar información sobre archivos que incluyen:
stat
apareció en la versión 1 de Unix . Es una de las pocas llamadas originales al sistema Unix que se cambiarán, con la adición de permisos de grupo y un tamaño de archivo más grande en la Versión 4 . [1]
El encabezado de la biblioteca C POSIX sys / stat.h , que se encuentra en POSIX y otros sistemas operativos similares a Unix, declara las funciones, así como las funciones relacionadas llamadas y . Las funciones toman un argumento de búfer, que se utiliza para devolver los atributos del archivo. En caso de éxito, las funciones devuelven cero, y en caso de error, se devuelve −1 y errno se establece de forma adecuada.stat()
fstat()
lstat()
struct stat
Las funciones stat()
y lstat()
toman un argumento de nombre de archivo . Si el archivo es un enlace simbólico , stat()
devuelve atributos del destino final del enlace, mientras que lstat()
devuelve atributos del enlace en sí. En su lugar, la fstat()
función toma un argumento descriptor de archivo y devuelve atributos del archivo que identifica.
La familia de funciones se amplió para implementar el soporte de archivos grandes . Funciones con nombre stat64()
, lstat64()
y fstat64()
atributos de retorno en una struct stat64
estructura, que representa los tamaños de archivo con un tipo de 64 bits, lo que permite las funciones para trabajar en archivos 2 GIB y más grandes (hasta 8 BEI). Cuando la _FILE_OFFSET_BITS
macro se define en 64, estas funciones de 64 bits están disponibles con los nombres originales.
Esta estructura se define en el archivo de encabezado sys / stat.h de la siguiente manera, aunque las implementaciones son libres de definir campos adicionales: [2]