Millisekunden-Zeit unter Linux ohne Bibliotheken von Drittanbietern erhalten
Im Gegensatz zu Windows, wo die Funktion „clock()“ Millisekunden-Zeit bereitstellt, on Unter Linux wird die Genauigkeit auf die nächste 1000 gerundet. Dadurch wird die Genauigkeit auf die zweite Ebene beschränkt, wodurch sie für die Erfassung unbrauchbar wird Millisekunden.
Während Qt mit seiner QTime-Klasse eine Lösung bereitstellt, wird ein allgemeinerer Ansatz angestrebt. Durch die Nutzung der Standard-C-Bibliothek kann eine zuverlässige Methode eingesetzt werden, um Millisekunden-Zeit unter Linux zu erhalten.
Der folgende Codeausschnitt zeigt, wie dies mit der Funktion gettimeofday() erreicht wird:
#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; }
Durch die Verwendung der Funktion gettimeofday() ruft der Code die aktuelle Zeit vor und nach einer angegebenen Verzögerung (in diesem Beispiel 2 Millisekunden) ab. Anschließend wird die Differenz in Sekunden und Mikrosekunden berechnet und in Millisekunden umgerechnet. Dieser Ansatz bietet eine präzise und standardkonforme Methode zum Erhalten von Millisekunden-Zeit unter Linux, ohne auf Bibliotheken von Drittanbietern angewiesen zu sein.
Das obige ist der detaillierte Inhalt vonWie können Sie unter Linux ohne Bibliotheken von Drittanbietern Millisekundenzeit erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!