gettimeofday及其相關時間函式

2022-08-26 02:42:07 字數 2269 閱讀 9022

1、

gettimeofday

函式:獲取到當前時間的秒數。

該函式的標頭檔案在/usr/include/sys/time.h標頭檔案中。

函式原型:int gettimeofday(struct timeval*tv, struct timezone *tz);

用到兩個結構體: timeval

和 timezone

這兩個結構體定義在/usr/include/linux/time.h標頭檔案中。

一秒=1000000微秒

函式作用:會把得到從2023年1月

1日0時

0分0秒到現在的秒數返回到第乙個引數指向的結構體中,第二個引數是關於時區,如果不考慮填入

null

。函式成功返回0,否則返回-1,

錯誤**存於errno。

可以利用該函式來計算乙個程式的執行時間,只需在程式前後呼叫該函式,並且後來的函式時間減去開始的函式時間就可以。注意單位的轉變。

2、time()函式:獲取到當前時間的秒數。

time函式宣告:time_t time(time_t *t)

標頭檔案:

由宣告可知,這裡有乙個特殊型別 time_t型別 ;相當於 long int 型別。函式引數為time_t型別變數的位址。

eg:time函式接收

time_t

型別的變數位址為引數,計算返回

2023年1

月1日00:00:00

到現在的秒數,並儲存在變數中。在實際使用中,一般希望得到的是標準的時間格式,現在只得到了秒數,接下來應該把得到的秒數轉換為時間格式,所以就需要用到localtime()和strftime()函式。只有這些組合使用才能得到標準格式的時間。

特殊:time(

null

);該函式會返回從

1970

到現在的秒數,但不儲存。

3、localtime

函式:返回指向tm結構的指標,並且按輸入的秒數填寫結構。

函式宣告:struct tm *localtime(const time_t *timer)

由此可見:該函式接收乙個time_t型別的變數位址。

該函式返回指向 tm 結構的指標,該結構帶有被填充的時間資訊;

tm 結構體:

該函式作用是返回指向tm結構的指標,並且按輸入的秒數填寫結構。localtime函式會把秒數劃分為各個點時間,但是這樣想要輸出的話只能輸出多個型別;此時應該用到strftime()函式來整合這個被填充了的tm結構;並輸出。

asctime函式:

該函式接收乙個指向tm的指標,並且把

tm結構體的內容轉換格式,返回乙個指向字串的指標。

4、strftime()和strptime()函式

strptime()函式:把時間格式字串,按一定格式儲存到tm結構體中。 

函式宣告:char *strptime(const char *buf,const char *format,struct tm *timeptr)

該函式有三個引數:

例子: struct   tm   tm_ptr 

strptime("2020-07-29 00:00","%y-%m-%d %h:%m",&tm_ptr);  該函式的作用是,把第乙個引數對應的時間字串,儲存到tm_ptr結構體中,第二個引數格式要和第乙個引數的格式一致。然後再通過strftime()函式轉換成想要的時間格式。

strftime函式:

函式宣告:size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)

該函式有四個引數,

該函式的作用是,把timeptr指向的結構體內容,根據format格式轉換,並且儲存在str中。

C語言函式gettimeofday

使用c語言進行計時,在使用者空間中可以使用c語言函式gettimeofday 得到時間,它的呼叫格式是 include int gettimeofday struct timeval tv,struct timezone tz int settimeofday const struct timeva...

gettimeofday 函式用法 特點

針對c語言來說,函式gettimeofday 用來來得到從1970年1月1日0時0分0秒到現在的秒數,其精度達到微妙 1e 6s include int gettimeofday struct timeval tv,struct timezone tz 返回值,成功則返回0,失敗返回 1,錯誤 存於...

時間函式 gettimeofday 使用

1.函式功能 gettimeofday是計算機函式,使用c語言編寫程式需要獲得當前精確時間 1970年1月1日到現在的時間 或者為執行計時,可以使用gettimeofday 函式。2.函式原型 int gettimeofday struct timeval tv,struct timezone tz...