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!