LINUX 中关于struct timeval 的解释

Posted 林散

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LINUX 中关于struct timeval 的解释相关的知识,希望对你有一定的参考价值。

转自:http://nathanxu.blog.51cto.com/50836/56663

问题如下:
在debian linux的man页中对gettimeofday函数的说明中,有这样一个说明:

DESCRIPTION
    The functions gettimeofdayand settimeofday can get and set the time as
    well as a timezone. The tvargument is a timeval struct, as specified
    in<sys/time.h>:

    struct timeval
         time_t      tv_sec;   
         suseconds_t  tv_usec;
    ;

其中对tv_usec的说明为时间的毫秒部分。 而在实际中,该函数以及Linux内核返回的timeval
类型的时间值,tv_usec代表的是微秒精度(10的-6次方秒)。

测试代码如下:

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

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



int main(int argc,char * argv[])

    struct timeval tv;
    while(1)
        gettimeofday(&tv,NULL);
         printf("time%u:%u\\n",tv.tv_sec,tv.tv_usec);
         sleep(2);

   
    return 0;




返回结果为:

evil@dcenter:~/tmp$ ./a.out
time 1142077839:903605
time 1142077841:910129
time 1142077843:920155
time 1142077845:930180
time 1142077847:940205
time 1142077849:950231
time 1142077851:960256
time 1142077853:970280
time 1142077855:980307
time 1142077857:990331

以上是关于LINUX 中关于struct timeval 的解释的主要内容,如果未能解决你的问题,请参考以下文章

使用未定义的 struct “timeval” 解决方案

SylixOS中时间结构体探究

linux —— C编程

如何在windows中使用timeval等Linux lib

Linux时间函数之gettimeofday()函数之使用方法

c语言linux打印运行时间(耗时) gettimeofday()timeval<sys/time.h>