gettimeofday()函数

#include 
#include 

int main(){
    struct timeval tv,tv1;
    gettimeofday(&tv,NULL);
    printf("s:%d ms:%d\n",(int)(tv.tv_sec),(int)(tv.tv_usec));
    gettimeofday(&tv1,NULL);
    printf("s1:%d ms1:%d\n",(int)(tv1.tv_sec),(int)(tv1.tv_usec));
    printf("sec:%d  ms:%d\n",(int)(tv1.tv_sec)-(int)(tv.tv_sec),(int)(tv1.tv_usec)-(int)(tv.tv_usec));
}

这里写图片描述

首先:man gettimeofday中的描述不是很清晰,tv结构体包含usec和sec,调用此函数后获取从1970年(1970.hh.min.sec.usec也就是1970年零点零风零秒)至今的时间换算成sec.usec的格式。所以sec和usec是一个整体。

#include 
#include 

int main(){
    struct timeval tv,tv1;
    gettimeofday(&tv,NULL);
    printf("s:%d ms:%d\n",(int)(tv.tv_sec),(int)(tv.tv_usec));
    sleep(3);
    gettimeofday(&tv1,NULL);
    printf("s1:%d ms1:%d\n",(int)(tv1.tv_sec),(int)(tv1.tv_usec));
    printf("sec:%d  ms:%d\n",(int)(tv1.tv_sec)-(int)(tv.tv_sec),(int)(tv1.tv_usec)-(int)(tv.tv_usec));
}

这里写图片描述

如果usec超过1s就会进位到sec中。

一般用于计算程序执行时间段,在计算连接的心跳时间时用的多一些。

你可能感兴趣的:(嵌入式)