Heure posix
Utilisateur anonyme
-
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour les gents !!!
auriez-vous une idée pour que je puisse obtenir dans un int le nombre de seconde qui ce sont passer depuis 1970 jusqu'à la dernière modification de mon fichier concerner ?
le tout en C évidement
je voudrais cette commande stat -c %Y nomdufichier
en C ...
des idée ?
merci d'avance
auriez-vous une idée pour que je puisse obtenir dans un int le nombre de seconde qui ce sont passer depuis 1970 jusqu'à la dernière modification de mon fichier concerner ?
le tout en C évidement
je voudrais cette commande stat -c %Y nomdufichier
en C ...
des idée ?
merci d'avance
1 réponse
-
-
Bonjours DAL !
merci de ta réactivité !
effectivement j'ai trouver lors de mes recherche que je pouvais avoir axée a la date de la dernière modificatif de mon fichier via stat grâce a
time_t st_mtime; /* Heure dernière modification *
mais comment l'utiliser pour qu'il me retourne un int qui vaut le nombre de seconde ou heure écouler depuis 1970 jusqu'a sa modification ? -
Si on lis le standard POSIX :
https://pubs.opengroup.org/onlinepubs/009695399/functions/stat.html
https://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/stat.h.html
"Times shall be given in seconds since the Epoch"
Sur un système POSIX conforme, le membretime_t st_mtime
de la struct renvoyée par stat doit être en secondes depuis Epoch.
Ce n'est pas le cas en C standard ISO, où il est plus prudent de ne pas se reposer sur cette présomption et d'utiliser les fonctions de conversion et de computation accessibles par le <time.h> standard.
Dal -
-
non, time_t est le type.
ce que tu récupères, c'est le membre de la struc st_mtime (de type time_t donc) qui est peuplé par stat.
sur la base du code d'exemple de la page de manuel, tu fais cela et c'est tout :
#include <sys/stat.h> #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { struct stat sb; if (argc != 2) { fprintf(stderr, "Usage: %s <pathname>\n", argv[0]); exit(EXIT_FAILURE); } if (stat(argv[1], &sb) == -1) { perror("stat"); exit(EXIT_FAILURE); } printf("Last file modification in seconds from Epoch: %d\n", (int)sb.st_mtime); exit(EXIT_SUCCESS); }
A ne faire, donc, que sur un système POSIX.
Dal
-