Maison >développement back-end >C++ >Comment pouvez-vous obtenir des millisecondes sous Linux sans bibliothèques tierces ?

Comment pouvez-vous obtenir des millisecondes sous Linux sans bibliothèques tierces ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-21 06:20:10351parcourir

How Can You Get Milliseconds Time on Linux Without Third-Party Libraries?

Obtention de temps en millisecondes sous Linux sans bibliothèques tierces

Contrairement à Windows, où la fonction clock() fournit un temps en millisecondes, sur Linux, il l'arrondit au millième près. Cela limite la précision au deuxième niveau, la rendant inutilisable pour capturer des millisecondes.

Alors que Qt apporte une solution avec sa classe QTime, une approche plus générique est recherchée. En tirant parti de la bibliothèque C standard, une méthode fiable peut être utilisée pour obtenir un temps en millisecondes sous Linux.

L'extrait de code suivant montre comment y parvenir à l'aide de la fonction gettimeofday() :

#include <sys/time.h>
#include <stdio.h>
#include <unistd.h>

int main()
{
    struct timeval start, end;

    long mtime, seconds, useconds;    

    gettimeofday(&start, NULL);
    usleep(2000);
    gettimeofday(&end, NULL);

    seconds  = end.tv_sec  - start.tv_sec;
    useconds = end.tv_usec - start.tv_usec;

    mtime = ((seconds) * 1000 + useconds/1000.0) + 0.5;

    printf("Elapsed time: %ld milliseconds\n", mtime);

    return 0;
}

En utilisant la fonction gettimeofday(), le code récupère l'heure actuelle avant et après un délai spécifié (2 millisecondes dans cet exemple). La différence en secondes et microsecondes est ensuite calculée et convertie en millisecondes. Cette approche fournit une méthode précise et conforme aux normes pour obtenir un temps en millisecondes sous Linux sans recourir à des bibliothèques tierces.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn