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
Libérer: 2024-11-21 06:20:10
original
341 Les gens l'ont consulté

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;
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal