97 votes

Comment obtenir l'heure actuelle en millisecondes à partir de C sous Linux ?

Comment puis-je obtenir l'heure actuelle sur Linux en millisecondes ?

63voto

yadab Points 708

Vous devez faire quelque chose comme ça :

struct timeval  tv;
gettimeofday(&tv, NULL);

double time_in_mill = 
         (tv.tv_sec) * 1000 + (tv.tv_usec) / 1000 ; // convert tv_sec & tv_usec to millisecond

12voto

Donal Fellows Points 56559

Utilisez gettimeofday() pour obtenir le temps en secondes et microsecondes. Combiner et arrondir à des millisecondes est laissé comme un exercice.

8voto

Ciro Santilli Points 3341

C11 timespec_get

Il revient à des nanosecondes, arrondies à la résolution de la mise en œuvre.

Il est déjà implémenté dans Ubuntu 15.10. L'API ressemble au POSIX clock_gettime.

#include <time.h>
struct timespec ts;
timespec_get(&ts, TIME_UTC);
struct timespec {
    time_t   tv_sec;        /* seconds */
    long     tv_nsec;       /* nanoseconds */
};

Plus de détails ici : https://stackoverflow.com/a/36095407/895245

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X