在 Linux 中,gettimeofday
函數用于獲取當前的時間,以秒和微秒為單位。這個函數通常用于測量代碼段的執行時間或者獲取高精度的時間戳。
gettimeofday
函數的原型如下:
#include <sys/time.h>
int gettimeofday(struct timeval *tv, struct timezone *tz);
其中,tv
是一個指向 timeval
結構體的指針,用于存儲獲取到的時間;tz
是一個指向 timezone
結構體的指針,但在大多數情況下,你可以傳遞 NULL
,因為 timeval
結構體中的 tm_zone
字段已經包含了時區信息。
timeval
結構體的定義如下:
struct timeval {
time_t tv_sec; // 秒數
suseconds_t tv_usec; // 微秒數
};
下面是一個簡單的示例,展示如何使用 gettimeofday
函數獲取當前時間:
#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 時間)。