Faire un time en nanosecondes avec stat !
Résolu/Fermé
shiklah
-
Modifié par mamiemando le 24/04/2016 à 10:49
mamiemando Messages postés 32283 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2023 - 24 avril 2016 à 11:36
mamiemando Messages postés 32283 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2023 - 24 avril 2016 à 11:36
A voir également:
- St_mtim
- Time machine - Guide
- Quick time - Télécharger - Lecture
- Salat time - Télécharger - Agendas & Calendriers
- Windir stat - Télécharger - Gestion de fichiers
- Popcorn time download - Télécharger - TV & Vidéo
1 réponse
mamiemando
Messages postés
32283
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
17 mars 2023
7 572
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