MacOS上的clock_gettime

时间:2017-01-06 16:05:31

标签: c macos time

clock_gettime不再适用于MacOS Sierra。很确定我在Xcode 8出现之前正确编译了这个。我真的很想做什么才能让它正确编译。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#include <time.h>

int main(){
    struct timespec time1, time2;

    clock_gettime(CLOCK_MONOTONIC,&time1);
    //Some code I am trying to work out performance of...
    clock_gettime(CLOCK_MONOTONIC,&time2);
    printf("Time Taken: %ld",time2.tv_nsec - time1.tv_nsec);
}
像这样的代码根本无法编译。我被告知sierra计时库已经改变了。我得到CLOCK_MONOTONIC未定义的编译器错误以及clock_gettime隐式声明的警告,如果我将CLOCK_MONOTONIC定义为随机的话会变成错误,因为它只会出错在连接阶段。

有没有人知道修复或解决方法来编译和执行代码?

1 个答案:

答案 0 :(得分:1)

我认为CLOCK_MONOTONIC近来并不存在。

我相信你想要的可能是mach_absolute_time()加上转换,如记录here;这似乎是单调的,绝对的(这是你可能知道的两个不同的东西)。

其他有用的提示可以在以下相关(但我认为不重复)的问题中找到: