首頁 > 後端開發 > C++ > 沒有第三方函式庫,如何在 Linux 上獲得毫秒級的時間?

沒有第三方函式庫,如何在 Linux 上獲得毫秒級的時間?

Barbara Streisand
發布: 2024-11-21 06:20:10
原創
353 人瀏覽過

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

在沒有第三方函式庫的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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板