Date Fichier

nicompx
Messages postés
107
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
15 juillet 2009
- 21 sept. 2006 à 11:32
cs_AlexN
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
- 21 sept. 2006 à 19:12
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

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

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

21 sept. 2006 à 13:31
Salut,

Je suis débutant en programmation LINUX.

Est-ce que tu as un exemple?

>> NiCoMpX <<
0
cs_AlexN
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
18
21 sept. 2006 à 19:12
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;
}
0