Date Fichier

Signaler
Messages postés
107
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
15 juillet 2009
-
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
-
Salut,


Pouvez-vous me dire comment récupérer la date de modification d'une fichier.
En language C sous linux.

Merci


>> NiCoMpX <<

3 réponses

Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
24
Tu peux faire un appel système à la commande ls et recuperer le resultat par l'intermédiaire d'un pipe

++
Messages postés
107
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
15 juillet 2009

Salut,

Je suis débutant en programmation LINUX.

Est-ce que tu as un exemple?

>> NiCoMpX <<
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
15
les dates de création et de modification se trouve dans les timestamp d'une inode.
La fonction stat() permet d'obtenir ces infos dans le champ mtime d'une structure stat ("man 2 stat" pour connaitre la structure complète)

#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <libgen.h>

int main(int argc, char *argv[])
{
    struct stat mystat;
    char date[100];

    if ( argc < 2) { printf ("Usage %s NomFichier\n", basename(*argv)); exit (EXIT_FAILURE); }
    if ( stat(argv[1], &mystat ) == -1 ) { perror ("stat"); exit (EXIT_FAILURE); }
    strftime(date, 100, "%c", localtime(&mystat.st_ctime));
    printf ("Date de création de %s : %s\n", argv[1], date);
    strftime(date, 100, "%c", localtime(&mystat.st_mtime));
    printf ("Date de dernière modification de %s : %s\n", argv[1], date);
    return EXIT_SUCCESS;
}