stat (llamada al sistema)


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:

statapareció 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 stat64estructura, 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]


stat línea de comando