溫馨提示×

Linux中g(shù)ettimeofday函數(shù)怎樣獲取時間

小樊
81
2024-09-30 22:40:59
欄目: 智能運維

在 Linux 中,gettimeofday 函數(shù)用于獲取當前的時間,以秒和微秒為單位。這個函數(shù)通常用于測量代碼段的執(zhí)行時間或者獲取高精度的時間戳。

gettimeofday 函數(shù)的原型如下:

#include <sys/time.h>

int gettimeofday(struct timeval *tv, struct timezone *tz);

其中,tv 是一個指向 timeval 結(jié)構(gòu)體的指針,用于存儲獲取到的時間;tz 是一個指向 timezone 結(jié)構(gòu)體的指針,但在大多數(shù)情況下,你可以傳遞 NULL,因為 timeval 結(jié)構(gòu)體中的 tm_zone 字段已經(jīng)包含了時區(qū)信息。

timeval 結(jié)構(gòu)體的定義如下:

struct timeval {
    time_t      tv_sec;     // 秒數(shù)
    suseconds_t tv_usec;    // 微秒數(shù)
};

下面是一個簡單的示例,展示如何使用 gettimeofday 函數(shù)獲取當前時間:

#include <stdio.h>
#include <sys/time.h>

int main() {
    struct timeval tv;

    gettimeofday(&tv, NULL);

    printf("當前時間:%ld 秒 %ld 微秒\n", (long)tv.tv_sec, (long)tv.tv_usec);

    return 0;
}

運行這個程序,你將看到類似以下的輸出:

當前時間:1627893040 秒 48094 微秒

這表示獲取到的時間是 2021-08-04 10:00:40(UTC 時間)。

0