linux中计时函数

 
1. gettimeofday 精确到微秒级别 

计时函数 int gettimeofday(structtimeval *tv,struct timezone *tz);
说明:gettimeofday将时间保存在结构tv之中,strut timeval gives the number of seconds and microsecondssince the Epoch,(00:00:00 UTC, January 1, 1970), measured inmicroseconds.  tz(即timezone,很少用到)一般我们使用null来代替。
保存时间的结构体
strut timeval {
long tv_sec;
long tv_usec;
};
注:需要头文件#include <sys/time.h>

示例代码:
#include <sys/time.h>
#include <stdio.h>
int main()
{
    struct timevaltpstart,tpend;
    double timeuse;
    gettimeofday(&tpstart,NULL);
    function()
    gettimeofday(&tpend,NULL);
    timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+tpend.tv_usec-tpstart.tv_usec;      //注意,秒的读数和微秒的读数都应计算在内
    printf("usedtime:%fus\n",timeuse);
}

2. 显示时间
time_t time(time_t*tloc);             //时间精度为秒
char *ctime(const time_t*clock);       //将秒数转化为字符串
time函数返回从1970年1月1日0点以来的秒数[注意,此函数返回的时间精度是“秒”]。存储在time_t结构之中。不过这个函数的返回值对于我们来说没有什么实际意义。这个时候我们使用第二个函数将秒数转化为字符串。这个函数的返回类型是固定的:一个可能值为。 thu dec 7 14:58:59 2000 这个字符串的长度是固定的为26
time_t类型实际上是由typedef定义的,并不是一个新类型,对于多数系统来说,time_t就是long。

struct tm * gmtime(const time_t *timer);
gmtime()函数是将日历时间转化为世界标准时间(即格林尼治时间),并返回一个tm结构体来保存这个时间
struct tm * localtime(const time_t * timer);
localtime()函数是将日历时间转化为本地时间

示例代码:
#include <time.h>//注:不是<sys/time.h>否则编译不报错,但运行报段错误
#include <stdio.h>
int main()
{
    time_t now;
    now = time(NULL);
    printf("%s",ctime(&now));
    return 0;
}
输出:Tue Jun 26 16:29:18 2007

你可能感兴趣的:(linux中计时函数)