clock()在linux下( windows中的clock()在linux下用什么替代 )

一、windows下的clock():

#include <stdio.h>
#include <time.h>
#include <windows.h>
int main()
{
 printf("startTime:%ld\n",clock());
 Sleep(50);//50ms
 printf("endTime:%ld\n",clock());
 return 0;
}

运行结果:

二、linux下的clock():

#include <stdio.h>
#include <time.h>
#include <unistd.h>
int main()
{
 printf("startTime:%ld\n",clock());
 usleep(50000);//50ms
 printf("endTime:%ld\n",clock());
 return 0;
}

运行结果:

每次运行结果都不一样,绝望(一万点暴击),希望以后能找到解决方案。

补充:已找到的解决方案

使用gettimeofday()功能和clock()一样,都是计算程序的运行时长,可自己构造定时器。

#include <sys/time.h>
#include <unistd.h>
#include <stdio.h>
struct timeval time1, time2;    
int main()
{   
    double elapsed_time=0.0;
    gettimeofday(&time1,NULL);                 
    usleep(100000);    
    gettimeofday(&time2,NULL);   
    elapsed_time = (time2.tv_sec - time1.tv_sec) *1000+(time2.tv_usec - time1.tv_usec)/1000;
    printf("Elapsed time: %lf(ms)\n",elapsed_time);   
    return 0;
}

运行结果:

精度还可以。。。

发布了38 篇原创文章 · 获赞 2 · 访问量 1543

猜你喜欢

转载自blog.csdn.net/qq_34754747/article/details/103374246
今日推荐