在沒有第三方函式庫的Linux 上取得毫秒時間
與Windows 不同,其中Clock() 函數提供毫秒時間, Linux,它將其四捨五入到最接近的1000。這將精度限制為秒級,使其無法用於捕獲毫秒。
雖然 Qt 透過其 QTime 類別提供了解決方案,但仍在尋求更通用的方法。透過利用標準 C 函式庫,可以採用可靠的方法在 Linux 上取得毫秒時間。
以下程式碼片段示範如何使用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; }
透過利用gettimeofday() 函數,程式碼擷取指定延遲(本例中為2 毫秒)之前和之後的當前時間。然後計算秒和微秒的差值並將其轉換為毫秒。這種方法提供了一種精確且符合標準的方法,無需依賴第三方函式庫即可在 Linux 上取得毫秒時間。
以上是沒有第三方函式庫,如何在 Linux 上獲得毫秒級的時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!