不能使用clock_gettime()作为秒表

时间:2017-09-04 20:35:45

标签: c time

我正在尝试测量代码两点之间的经过时间 我尝试在下面的代码中使用clock_gettime函数,但它没有给出预期的结果。

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

int main() {
    struct timespec start, finish;
    long unsigned int elapsed;

    clock_gettime(CLOCK_MONOTONIC, &start);

    sleep(1);

    clock_gettime(CLOCK_MONOTONIC, &finish);

    elapsed = finish.tv_nsec;
    elapsed = elapsed - start.tv_nsec;

    printf("%lu\n", elapsed);
}

我期待接近1.000.000.000的东西,但它打印的值如:122360,220942,205456,225053。
我做错了什么?有没有更好的方法来测量经过时间,分辨率至少为0.1秒?

0 个答案:

没有答案