C语言linux gettimeofday()函数和time()函数的区别(后者只能得到秒级系统时间,前者能得到毫秒甚至微秒级系统时间)
生活随笔
收集整理的這篇文章主要介紹了
C语言linux gettimeofday()函数和time()函数的区别(后者只能得到秒级系统时间,前者能得到毫秒甚至微秒级系统时间)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
UNIX及Linux的時間系統是由「新紀元時間」Epoch開始計算起,單位為秒。Epoch是指定為1970年1月1日凌晨零點零分零秒,格林威治時間。目前大部份的UNIX系統都是用32位來記錄時間,正值表示為1970以后,負值則表示1970年以前。下面看下time.h中的time函數,sys/time.h中的gettimeofday函數
#include<time.h> #include<sys/time.h> #include<stdio.h> int main(){time_t tt;struct timeval tv;tt=time(NULL);gettimeofday(&tv,NULL);printf("time_t sec is %ld\n",tt);printf("gettimeofday tv_sec is %ld, usec is %ld \n",tv.tv_sec,tv.tv_usec); }在linux ubuntu虛擬機上編譯運行:
time_t sec is 1638791279 gettimeofday tv_sec is 1638791279, usec is 408521PS: time 與 gettimeofday 兩個函數得到的都是從Epoch開始到當前的秒數(tt=tv.tv_sec),而后者還能得到更精細的微秒級結果,即tv_sec*(10^6)+tv_usec為從Epoch開始到當前的微秒數
參考文章1:gettimeofday()和time()的區別
參考文章2:C語言如何獲得精確到毫秒的時間
總結
以上是生活随笔為你收集整理的C语言linux gettimeofday()函数和time()函数的区别(后者只能得到秒级系统时间,前者能得到毫秒甚至微秒级系统时间)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言预定义宏 __func__、__F
- 下一篇: size_t是什么数据类型?为什么要用s