在 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 時間)。