您的位置:威尼斯官方网站 > 威尼斯正规官网 > 函数表明

函数表明

发布时间:2019-08-24 19:00编辑:威尼斯正规官网浏览(166)

    linux中C语言获取高精度挂钟gettimeofday函数,高精度gettimeofday

    前言:
        在付出中,相当多时候须求理解种种函数可能是有个别设备对命令的操功效时,由此要求用到 gettimeofday 来得到当前时钟。

    一,函数表达

            #include 

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

            注意:

            1.可相信等第,微妙级别
            2.受系统时间修改影响
            3.回去的秒数是从壹玖柒零年5月1日0时0分0秒初叶

            其参数tv是保留获取时间结果的结构体,参数tz用于保存时区结果:

            结构体timeval的概念为:

    点击(此处)折叠或展开

        struct timeval
        {
            long int tv_sec;     // 秒数
            long int tv_usec;     // 微秒数
        }
    

            它拿走的年华标准到微秒(1e-6 s)量级

            结构体timezone的定义为:

    点击(此处)折叠或展开

        struct timezone
        {
            int tz_minuteswest;/*格林威治时间往西方的时差*/
            int tz_dsttime;    /*DST 时间的修正方式*/
        }
    

            timezone 参数若不使用则传出NULL即可。
                其中 tz_dsttime 的值:

    点击(此处)折叠或张开

        DST_NONE /*不使用*/
        DST_USA /*美国*/
        DST_AUST /*澳洲*/
        DST_WET /*西欧*/
        DST_MET /*中欧*/
        DST_EET /*东欧*/
        DST_CAN /*加拿大*/
        DST_GB /*大不列颠*/
        DST_RUM /*罗马尼亚*/
        DST_TUR /*土耳其*/
        DST_AUSTALT /*澳洲(1986年以后)*/
    

            返回值
                中标则重返0,退步重回-1,错误代码存于errno。

            ERRORS
               EFAULT One of tv or tz pointed outside the accessible address space.
               EINVAL Timezone (or something else) is invalid.
     
    二,实例

    点击(此处)折叠或展开 

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <string.h>
     4 #include <sys/time.h>
     5 int    time_substract(struct timeval *result, struct timeval *begin,struct timeval *end)
     6 {
     7     if(begin->tv_sec > end->tv_sec)    return -1;
     8     if((begin->tv_sec == end->tv_sec) && (begin->tv_usec > end->tv_usec))    return -2;
     9     result->tv_sec    = (end->tv_sec - begin->tv_sec);
    10     result->tv_usec    = (end->tv_usec - begin->tv_usec);
    11     
    12     if(result->tv_usec < 0)
    13     {
    14         result->tv_sec--;
    15         result->tv_usec  = 1000000;
    16     }
    17     return 0;
    18 }
    19 int main(int argc, char **argv)
    20 {
    21     struct timeval start,stop,diff;
    22     memset(&start,0,sizeof(struct timeval));
    23     memset(&stop,0,sizeof(struct timeval));
    24     memset(&diff,0,sizeof(struct timeval));
    25     gettimeofday(&start,0);
    26     //做你要做的事...
    27     printf("hello worldn");
    28     gettimeofday(&stop,0);
    29     time_substract(&diff,&start,&stop);
    30     printf("Total time : %d s,%d usn",(int)diff.tv_sec,(int)diff.tv_usec);
    31 }
    

        操作结果:
            图片 1   转载自:        

    前言: 在付出中,相当多时候须求驾驭各类函数可能是少数设备对命令的操功效...

    本文由威尼斯官方网站发布于威尼斯正规官网,转载请注明出处:函数表明

    关键词:

上一篇:一种是直接赋值

下一篇:没有了