La llamada al sistema fstat
envía información de estado sobre el archivo asociado con un descriptor de archivo abierto. La información se escribe en una estructura, buf
, cuya dirección se transmite a modo de parámetro.
Las librerias son:
#include <unistd.h>
#include <sys/stat.h>
#include <sys/type.h>
y la sintaxis:
Las funciones relacionadas stat
y lstat
envían información de estado sobre el archivo nombrado. Generan los mismos resultados, salvo cuando el archivo es un enlace simbólico. lstat
envía información sobre el propio vínculo, y stat envía información sobre el archivo al cual se refiere el vínculo.
Los miembros de la estructura stat
, pueden variar dependiendo del sistema UNIX, pero aparecerán los que contiene la siguiente tabla:
Los indicadores st_mode
enviados en la estructura stat
también tiene un número de macros asociados que están definidos en el archivo de cabecera sys/stat.h
. Dichas macros incluyen nombres de permisos e indicadores de archivo, así como algunas máscaras para ayudar a realizar las comprobaciones de los tipos específicos y de los permisos.
Los indicadores de permisos son los mismos que para la llamada al sistema open descrita previamente. entre los indicadores de tipo archivo se encuentran:
- S_IFBLK: La entrada es un dispositivo especial de bloque.
- S_IFDIR: La entrada es un directorio.
- S_IFCHR: La entrada es un dispositivo de carácter especial.
- S_IFIFO: La entrada es un FIFO (First in, First out, denominado tubería).
- S_IFREG: La entrada es un archivo regular.
- S_IFLNK: La entrada es un vínculo simbólico.
Otros modos de indicación:
- S_ISUID: La entrada tiene setUID en ejecución.
- S_ISGID: La entrada tiene setGID en ejecución.
Entre las máscaras para interpretar los indicadores st_mode son:
- S_IFMT: Tipo de archivo.
- S_IRWXU: Permisos de lectura/escritura/ejecución para el usuario.
- S_IRWXG: Permisos de lectura/escritura/ejecución para el grupo.
- S_IRWXO: Permisos de lectura/escritura/ejecución para otros.
Hay algunos macros definidos para ayudar a determinar el tipo de archivos. Éstos comparan únicamente indicadores de modo debidamente enmascaradas con un indicador de dispositivo.
- S_ISBLK: Comprueba la existencia de archivos de bloques especiales.
- S_ISCHR: Comprueba la existencia de archivos de carácter especial.
- S_ISDIR: Comprueba la existencia de archivos de carácter especial.
- S_ISFIFO: Comprueba la existencia de FIFO.
- S_ISREG: Comprueba la existencia de un archivo regular.
- S_ISLNK: Comprueba la existencia de un vínculo simbólico.
Por ejemplo, para comprobar que un archivo no representa un directorio y que tiene permiso de ejecución para el propietario pero no dispone del resto de permisos, puede usar:
Debe estar conectado para enviar un comentario.