Función fstat en c

Función fstat en c

La función fstat () llama al sistema para devolver la información (con respecto a algún archivo) que depende del descriptor de ese archivo. Esta función obtiene la información para el archivo asociado con el descriptor del archivo también conocido como "Filtes" y luego escribe esta información en la ubicación de la memoria donde apunta el búfer. El tipo de retorno de esta función es un entero. Devuelve el valor "0" si el programa se ejecuta correctamente. De lo contrario, devuelve un "-1" a la función en caso de ejecución fallida. El error de ejecución para esta función puede deberse a algunas razones específicas como si el Filtes de la función tiene un descriptor no válido para el archivo, si el error de lectura para la entrada y la salida se produce desde el archivo, y si la ubicación de memoria (estructura) donde El búfer apunta a escribir la información del archivo no tiene suficiente memoria asignada para el tamaño del archivo.

Procedimiento

Este artículo sigue el orden secuencial para implementar la función fstat () para obtener la información del archivo. Primero aprendemos la sintaxis para esta función, los parámetros requeridos para esta función. Luego, usamos esta sintaxis para ejecutar algunos ejemplos para la función fstat ().

Sintaxis

El método para declarar la función fstat () que permite el acceso del programa a la información del archivo se menciona en la siguiente línea:

$#incluir
$ int fstat (int Filtes, struct stat *buf);

Cada vez que tenemos que llamar a la función en nuestro programa, primero tenemos que importar los archivos de encabezado que admiten esta función como "SYS/ STAT.H ". El tipo de retorno para la función siempre es "int" y el parámetro incluye "Filtes" con el tipo de datos "INT". Fildes es un descriptor para el archivo que queremos saber la información sobre. Otro parámetro que se da a la función es el puntero "buf". Es un puntero de "estadística de estructura" que apunta hacia la estructura donde queremos almacenar los datos sobre el archivo. Esta es una breve descripción de los parámetros de entrada para la función fstat ().

Ejemplo

Utilizamos la descripción pervergiosa y ejecutamos un programa para obtener la información sobre cualquier archivo específico a través de nuestro programa. Escribimos este programa en el compilador de Microsoft Visual Studio C para la ejecución. Comenzamos con el ejemplo creando un proyecto primero y luego agregándolo a los repositorios de C en Visual Studio. Para agregar el proyecto a los archivos C, incluimos el ".c "con el nombre del proyecto y agréguelo al archivo fuente del proyecto. El siguiente paso después de la creación del proyecto es llamar a todas las bibliotecas requeridas para las funciones que podemos usar más adelante en el programa. Dado que estamos implementando el ejemplo de la función fstat () en este artículo, debemos incluir el archivo de encabezado "sys/ stat.H ". Para la información del archivo, necesitamos conocer el tipo de dispositivo donde existe el archivo. Para conocer el tipo de datos para el dispositivo, incluimos el encabezado "Tipo. H "en el programa.

La información del archivo debe incluir el momento en que se abrió el archivo por última vez y la modificación que se realizó en él. Para acceder a estas funciones de llamadas de tiempo, agregamos el archivo de encabezado "Times. h "y el" fcntl. encabezado h "para las funciones de permiso del archivo. El último encabezado "Stdio. El archivo H ”también se incluye en el programa para llamar a los métodos printf () y scanf () en el programa. Los archivos de encabezado que discutimos para ser incluidos en el programa son los siguientes:

$#incluir
$#incluir
$#incluir
$#incluir
$#incluir

Después de que los archivos de encabezado mencionados anteriormente se importan con éxito al programa, ahora creamos el programa para obtener la información sobre un archivo específico. Declaramos la función que tiene el tipo de retorno como "int" con el nombre "principal". En esta función principal, declaramos una matriz de "char" y le asignamos el nombre del archivo que necesitamos para conocer una información para. Luego, definimos una "información de estadísticas" con el tipo de datos "estructura". Esta estructura es un lugar donde almacenamos la información sobre el archivo.

Luego, definimos otra variable con el nombre "file_descriptor" con el tipo de datos como "entero". En la "condición if", pedimos permiso para las operaciones de lectura y escritura para el archivo si existe, aprobando el "S_iWusr" y el nombre de la matriz a la función "Create ()" "que requiere los permisos para el archivo si existe o crea un nuevo archivo de lo contrario. Pase esta función create () a la "condición if" que establece si el valor de la función create () es menor que cero, entonces crea un error que el archivo debe crearse. Si el fstat () con los parámetros como "file_descriptor" y "información" y "la dirección de la ubicación donde se almacena la información del archivo" no es igual a cero, mostramos el valor devuelto fstat () que es la información del archivo. E imprimimos la información en forma de atributos, e.gramo. ID del dispositivo en el que se almacena el archivo, el número de inodoro del dispositivo, el modo de protección del archivo, el ID de usuario, la ID de grupo y el número del enlace (formulario duro).

Después de mostrar estos atributos, salimos de las declaraciones y cerramos el archivo usando el método Close (). Luego, desintegre el archivo llamando al método UNLINK ().

#incluir
#incluir
#incluir
#incluir
#incluir
principal()
Char Array [] = "amp.archivo";
Información de estadística de estructura;
int fileScriptor;
if ((fileDescriptor = create (array, s_iwusr)) < 0)
perror ("create () error");
demás
if (FSTAT (FileDescriptor e Information) != 0)
perror ("fstat () error");
demás
pone ("fstat () valores:");
printf ("inode: %d \ n", (int) información.st_ino);
printf ("dispositivo_id: %d \ n", (int) información.st_dev);
printf ("Modo de dispositivo: %08x \ n", información.st_mode);
printf ("no_of_hard_links: %d \ n", información.st_nlink);
printf ("u_id: %d \ n", (int) información.st_uid);
printf ("g_id: %d \ n", (int) información.st_gid);

cerrar (archedescriptor);
Unlink (matriz);

El programa primero accederá al permiso para la operación del archivo y luego lee los datos y los escribirá en la ubicación de la memoria asignada. Los atributos que dimos el programa para mostrar desde el archivo se muestran en la salida.

Conclusión

Utilizamos la función fstat () para acceder a la información del archivo. Primero aprendimos la sintaxis para la función fstat () explicada con la descripción completa de los parámetros de la función. Luego, escribimos un programa para esta función donde primero accedimos al permiso del propietario de nuestro archivo y luego leemos el archivo y mostramos los atributos que queríamos de la información del archivo. Hicimos nuestro mejor esfuerzo para dejarle comprender el concepto de fstat () y esperamos que lo ayude en sus programas.