c-比较timespec值

比较两个timespec值以查看哪个首先发生的最佳方法是什么?

以下内容有问题吗?

bool BThenA(timespec a, timespec b) {
    //Returns true if b happened first -- b will be "lower".
    if (a.tv_sec == b.tv_sec)
        return a.tv_nsec > b.tv_nsec;
    else
        return a.tv_sec > b.tv_sec;
}

解决方法:

可以执行此操作的另一种方法是为timespec定义全局运算符<().然后,您可以比较一下是否发生过一次.

bool operator <(const timespec& lhs, const timespec& rhs)
{
    if (lhs.tv_sec == rhs.tv_sec)
        return lhs.tv_nsec < rhs.tv_nsec;
    else
        return lhs.tv_sec < rhs.tv_sec;
}

然后,您可以在代码中拥有

timespec start, end;
//get start and end populated
if (start < end)
   cout << "start is smaller";
上一篇:【Linux02】LInux入门


下一篇:源码使用Boost.JSON编译报错,提示无法打开文件“libboost_json-*.lib” “libboost_container-*.lib”