Faire un time en nanosecondes avec stat !
Résolu/Fermé
shiklah
-
Modifié par mamiemando le 24/04/2016 à 10:49
mamiemando Messages postés 33387 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 novembre 2024 - 24 avril 2016 à 11:36
mamiemando Messages postés 33387 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 novembre 2024 - 24 avril 2016 à 11:36
A voir également:
- St_mtim
- Windir stat - Télécharger - Gestion de fichiers
- Finish time lite - Télécharger - Utilitaires
- Salat time - Télécharger - Agendas & Calendriers
- Quick time - Télécharger - Lecture
- Time machine - Guide
1 réponse
mamiemando
Messages postés
33387
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
27 novembre 2024
7 803
Modifié par mamiemando le 24/04/2016 à 11:38
Modifié par mamiemando le 24/04/2016 à 11:38
Bonjour,
Je n'ai pas vraiment compris ta question. D'après le man de
... avec :
... donc en gros les dates que tu récupères sont de type
https://pubs.opengroup.org/onlinepubs/007908775/xsh/time.h.html
Ce qui donne :
Ce qui donne par exemple :
Bonne chance
Je n'ai pas vraiment compris ta question. D'après le man de
stat, la fonction prend en paramètre :
int stat(const char *pathname, struct stat *buf);
... avec :
struct stat { dev_t st_dev; /* Périphérique */ ino_t st_ino; /* Numéro d’inœud */ mode_t st_mode; /* Protection */ nlink_t st_nlink; /* Nombre de liens physiques */ uid_t st_uid; /* UID du propriétaire */ gid_t st_gid; /* GID du propriétaire */ dev_t st_rdev; /* Type de périphérique */ off_t st_size; /* Taille totale en octets */ blksize_t st_blksize; /* Taille de bloc pour E/S */ blkcnt_t st_blocks; /* Nombre de blocs de 512 o alloués */ /* Depuis Linux 2.6, le noyau permet une précision à la nanoseconde pour les champs temporels suivants. Pour plus de précisions avant Linux 2.6, consultez les NOTES. */ struct timespec st_atim; /* Heure dernier accès */ struct timespec st_mtim; /* Heure dernière modification */ struct timespec st_ctim; /* Heure dernier changement état */ #define st_atime st_atim.tv_sec /* Rétrocompatibilité */ #define st_mtime st_mtim.tv_sec #define st_ctime st_ctim.tv_sec };
... donc en gros les dates que tu récupères sont de type
struct timespecainsi définie :
https://pubs.opengroup.org/onlinepubs/007908775/xsh/time.h.html
Ce qui donne :
#include <errno.h> // errno #include <stdio.h> // printf, fprintf #include <stdlib.h> // EXIT_* #include <string.h> // strerror #include <sys/types.h> // stat #include <sys/stat.h> // stat #include <time.h> // ctime #include <unistd.h> // stat int main(int argc, char ** argv) { // Handle arguments if (argc != 2) { fprintf(stderr, "usage: %s filename\n", argv[0]); return EXIT_FAILURE; } const char * filename = argv[1]; // Get stats struct stat result; if (stat(filename, &result) == 0) { printf("Last access of %s: %sns: %ld\n", filename, ctime(&result.st_atim.tv_sec), result.st_atim.tv_nsec ); } else { fprintf(stderr, "%s: %s.\n", argv[0], strerror(errno)); } return EXIT_SUCCESS; }
Ce qui donne par exemple :
(mando@velvet) (~) $ ./a.out /etc/fstab
Last access of /etc/fstab: Sat Apr 23 20:36:49 2016
ns: 236008608
Bonne chance