viernes, 13 de enero de 2012

Fechas de archivos ANSI C


En ocasiones es necesario saber la fecha de creación, modificación, hora del último acceso a un archivo y otros parámetros del mismo.
Pero para no pelear con el SO se puede utilizar la librería <sys/stat.h> de C. Aquí un ejemplo de como obtener la fecha de creación y sacar la diferencia de minutos transcurridos a la fecha:


#include<stdio.h>
#include<time.h>
#include<string.h>
#include<sys/stat.h>

void main(void)
{
        /*Nombre del archivo*/
        char *file_name;
        /*Tiempo en esté momento*/
        time_t time_now = time(NULL);
        /*Diferencia de tiempo*/
        float diff ;
        /*Estructura en donde se almacenará toda la info del archivo*/
        struct stat strbuf;
        /*Se copia la ruta del archivo*/
        strcpy(file_name, "/home/spg0x01/archivo_prueba.xy");
        /*Minutos de diferencia*/
        int minutos = 0 ;
        /*Llamada a stat*/
        stat(file_name, &strbuf);
        /*Diferencia de tiempo*/
        diff = difftime(time_now, strbuf.st_ctime);
        minutos = diff/60.0;
        printf("minutos de diferencia %d\n", minutos);

}

Resultado:


*El el primer comando se obtiene la fecha de creación del archivo y son las 15:11
*En el segundo se ejecuta el programa y marca que hay una diferencia de 8 minutos
*En el tercero se corrobora que son las 15:19 ( 15:19 - 15:11 = 8 min).
Se pueden consultar las demás opciones de stat haciendo un man stat.h en Linux y
en windows...... instalen linux.

Saludos.




No hay comentarios:

Publicar un comentario