您的位置:首页 > 运维架构 > Linux

Linux C 编程计算流逝的时间--毫秒

2015-05-13 17:53 661 查看
#include <time.h>
#include <stdio.h>

void do_something()
{
printf("Do something......\n");
}

static inline long get_elapsed_time_ms (const struct timespec *start, const struct timespec *end)
{
unsigned long sec;
unsigned long nsec;
if (start == NULL || end == NULL)
return 0;
sec = end->tv_sec - start->tv_sec;
nsec = end->tv_nsec - start->tv_nsec;
if (sec < 0)
{
return 0;
}
if (nsec < 0)
{
sec--;
nsec += 1000000000;
}
return sec * 1000L + nsec / 1000000L;
}

int main()
{
struct timespec start_time = {0, 0};
struct timespec end_time = {0, 0};
int before_time_err, after_time_err;
unsigned long elapsed_time;
before_time_err = clock_gettime(CLOCK_MONOTONIC, &start_time); // You can choose CLOCK_REALTIME.
do_somthing();
after_time_err = clock_gettime(CLOCK_MONOTONIC, &end_time);

if (before_time_err || after_time_err)
{
printf("Get time err: start_time_err = %d, after_time_err = %d",
start_time_err, after_time_err);

return 0;
}

elapsed_time = get_elapsed_time_ms(&start_time, &end_time);
printf("do_something function spend about %ld ms\n", elapsed_time);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 编程