[C] 取得目前時間 gettimeofday()

在 C 語言中,我們可以用 gettimeofday 函數來取得系統時間。精確度至微秒

使用 gettimeofday() 函數要 include 以下兩個標頭檔

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

回傳兩個結構 timeval (目前時間) 與 timezone,相關訊息如下

int gettimeofday (struct timeval * tv, struct timezone * tz);
    //成功return 1,失敗return 0
    struct timeval{
    long tv_sec;  //秒
    long tv_usec;  //微秒
};

struct timezone
{
    int tz_minuteswest;  //和格林威治時間差了幾分鐘
    int tz_dsttime;  //日光節約時間狀態
};

範例

#include <sys/time.h>
#include <unistd.h>
main(){
    struct timeval tv;
    struct timezone tz;
    gettimeofday (&tv, &tz);
    printf("tv_sec; %d\n", tv.tv_sec);
    printf("tv_usec; %d\n", tv.tv_usec);
    printf("tz_minuteswest; %d\n", tz.tz_minuteswest);
    printf("tz_dsttime, %d\n", tz.tz_dsttime);
}

參考資料

C 語言 gettimeofday 函數:獲取當前時間


平時會觀察網路行銷、雲端運算與資訊安全等議題,曾在趨勢科技擔任實習生、 GCP 專門家擔任技術文章寫手,也擔任過 C、JAVA、雲端運算等課程助教。