1. 程式人生 > >Linux時間函式之 gettimeofday() 函式之使用方法

Linux時間函式之 gettimeofday() 函式之使用方法

一.gettimeofday()函式的使用方法

1.簡介:

在C語言中可以使用函式gettimeofday()函式來得到時間。它的精度可以達到微妙

2.函式原型:

#include<sys/time.h>

int gettimeofday(struct  timeval*tv,struct  timezone *tz )

3.說明:

gettimeofday()會把目前的時間用tv 結構體返回,當地時區的資訊則放到tz所指的結構中

4.結構體:

1>timeval

struct  timeval{

       long  tv_sec;/*秒*/

       long  tv_usec;/*微妙*/

};

2>timezone 結構定義為:

struct  timezone{

        int tz_minuteswest;/*和greenwich 時間差了多少分鐘*/

        int tz_dsttime;/*type of DST correction*/

}

3>在gettimeofday()函式中tv或者tz都可以為空。如果為空則就不返回其對應的結構體。

4>函式執行成功後返回0,失敗後返回-1,錯誤程式碼存於errno中。

5.程式例項:

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

#include<unistd.h>

int 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);

}

說明:在使用gettimeofday()函式時,第二個引數一般都為空,因為我們一般都只是為了獲得當前時間,而不用獲得timezone的數值

二.gettimeofday()函式的一個常用方法

在測試程式時,往往需要了解程式執行所需的時間,在Linux中可以使用函式gettimeofday來得到時間.

1.程式例項:

測試呼叫delya()函式所需執行的時間(單位為微妙)

#include<stdio.h>

#include<sys/time.h>

#include<unistd.h>

int delay(int time)

{

    int i,j;

    for(i =0;i<time;i++)

        for(j=0;j<5000;j++)

            ;

}

int main()

{

        struct  timeval start;

        struct  timeval end;

        unsigned  long diff;

        gettimeofday(&start,NULL);

        delay(10);

        gettimeofday(&end,NULL);

diff = 1000000 * (end.tv_sec-start.tv_sec)+ end.tv_usec-start.tv_usec;

        printf(“thedifference is %ld\n”,diff);

        return 0;

}

說明:

使用該方法就可以檢測出呼叫delay()函式所使用的時間

相關推薦

Linux時間函式 gettimeofday() 函式使用方法

一.gettimeofday()函式的使用方法 1.簡介: 在C語言中可以使用函式gettimeofday()函式來得到時間。它的精度可以達到微妙 2.函式原型: #include<

Linux時間函式gettimeofday()函式使用方法

一.gettimeofday()函式的使用方法:1.簡介:在C語言中可以使用函式gettimeofday()函式來得到時間。它的精度可以達到微妙2.函式原型:#include<sys/time.h>int gettimeofday(struct  timeval*

Linux 時間函式 gettimeofday() 函式使用方法

一.gettimeofday() 函式的使用方法: 1.簡介: 在 C 語言中可以使用函式 gettimeofday() 函式來得到時間。它的精度可以達到微妙 2.函式原型: #include<sys/time.h> int gettimeofday(stru

c函式gettimeofday()函式獲取系統時間

gettimeofday     使用C語言編寫程式需要獲得當前精確時間(1970年1月1日到現在的時間),或者為執行計時,可以使用gettimeofday()函式。 函式原型:     int gettimeofday(struct timeval*tv, struct

C語言linux環境下使用gettimeofday函式得到程式執行時間

編寫的一個打字遊戲中需要計算程式的執行時間,通過網上查閱資料發現大多數都是說通過clock()函式來獲取時間,之後做差從而的到程式的執行時間。但是在linux中測試以後發現結果是0,並不能得到程式的執行時間。 請教老師後得知可以通過引用標頭檔案time.h,使

Linux時間和字元轉換函式

//linux作業系統提供的時間操作函式。 時間操作函: /*  *  date +%s -d '2004/06/04 20:30:00'  //將時間轉換成毫秒數。  *      int gettimeofday(struct timeval *tv, struct

Function Read_Text 函式的使用方法

在SAP系統中,有時候會有大段文字內容需要儲存.例如:銷售發貨(VL03N),在單據的概覽中 ,有一個[文字]項,在此處可以填寫單據的大段文字描述,那麼該內容儲存在哪裡呢?第一反應是找對應表的欄位,那麼你可能要失望了。在SAP系統中,可以供我們使用的資料庫欄位最大長度是255個文字字元(注:此處可能

linux C函式stat函式

1.函式功能: 通過檔名filename獲取檔案資訊,並儲存在buf所指的結構體stat中 2.函式原型 1)函式標頭檔案 #include <sys/stat.h> #include <unistd.h> 2)函式 int stat(const c

跟老齊學Python私有函式和專有方法

在任何語言中,都會規定某些物件(屬性、方法、函式、類等)只能夠在某個範圍內訪問,出了這個範圍就不能訪問了。這是“公”、“私”之分。此外,還會專門為某些特殊的東西指定一些特殊表示,比如類的名字就不能用class,def等,這就是保留字。除了保留字,python中還為類的名字做了某些特殊準備,就是“專有

linuxselect函式用法詳解

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Linux核心啟動第二階段setup_arch函式分析

轉自:http://blog.chinaunix.net/uid-20672257-id-2383451.html 執行setup_arch()函式 回到start_kernel當中,569行,呼叫setup_arch函式,傳給他的引數是

linux C函式access函式的用法【轉】

1.函式功能: 檢查呼叫程序是否可以對指定的檔案執行某種操作。 2.函式原型: 1)函式標頭檔案 #include <stdio.h> #include <unistd.h> 2)函式 int access(

Linux I/O複用select函式詳解

置頂 2017年02月12日 20:50:08 難免有錯_ 閱讀數:7438更多 select函式的功能和呼叫順序 使用select函式時統一監視多個檔案描述符的: 1、 是否存在套接字接收資料? 2、 無需阻塞傳輸資料的套接字有哪些? 3、 哪些套接字發生了

MATLABfprintf函式的具體使用方法

fprintf函式可以將資料按指定格式寫入到文字檔案中。其呼叫格式為: 資料的格式化輸出:fprintf(fid,format,variables) 按指定的格式將變數的值輸出到螢幕或指定檔案 fid為檔案控制代碼,若預設,則輸出到螢幕 format用來指定資料輸出時採用的格式 %

Linux學習(C語言學習函式的使用)

C語言的函式在理解和使用中主要從以下幾個方面來思考: 什麼是函式? 函式的入口引數 函式的返回值 函式具備三要素: 1、函式名 (地址) 2、輸入引數 3、返回值 在定義函式時,必須將三要素告訴編譯器; 命令:man 3 printf;可以檢視關於printf的

Linux高階程式設計基礎——程序間通訊用sigqueue函式和sigaction函式實現訊號的安裝與傳送

程序間通訊之用sigqueue函式和sigaction函式實現訊號的安裝與傳送 程序A向程序B傳送SIGUSR1訊號; 程序B收到訊號後,列印字串“receive SIGUSR1”; 要求用sigqueue函式和sigaction函式實現以上功能; /這個實

Linux C高階程式設計——網路程式設計包裹函式

                                    Linux網路程式設計(六)——包裹函式                          宗旨:技術的學習是有限的,分享的精神是無限的。          系統呼叫不能保證每次都成功,必須進行出

Linux C高階程式設計——檔案操作函式

Linux C高階程式設計——檔案操作之庫函式 宗旨:技術的學習是有限的,分享的精神是無限的 ——為什麼要設計標準I/O庫? 直接使用API進行檔案訪問時,需要考慮許多細節問題 例如:read、write時,緩衝區的大小該如何確定,才能使效率最優 標準I/O庫封裝了諸多

Linux程式設計ioremap函式的例項解析

void * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags) 入口: phys_addr:要對映的起始的IO地址; size:要對映的空間的大小; flags:要對映

Linux-C網路程式設計epoll函式

上文中說到如果從100的不同的地方取外賣,那麼epoll相當於一部手機,當外賣到達後,送貨員可以通知你,從而達到每去必得,少走很多路。 它是如何實現這些作用的呢? epoll的功能 epoll是select/poll的強化版,同是多路複用的函式,epoll