c++ - clock() 返回负值?

标签 c++ function clock

我已经创建了一个服务器程序,并且某个错误发生了两次,其中函数“clock()”返回了一个负值(并使服务器崩溃)。两次都是当程序在 Windows 32 位 VPS 上运行超过 100 小时时发生的。

这是我在 main.cpp 中的设置(在适当的地方剪切):

while (1) {
    Sleep(STEP);

            //execute main code like connection handling, AI, etc.

    //check for clock error
    if (clock() < 0) {
        //error saved here

                //close server
        return 0;
    }
}

就是这样,非常简单。 clock() 在程序的其余部分广泛使用,因此当它像这样出现故障时会导致很多问题。

我想知道,为什么它会返回一个负值,我该如何解决?

谢谢。

最佳答案

根据 Microsoft's documentation如果“耗时量不可用”,它可以返回 -1。不幸的是,他们没有解释时间将如何不可用。

clock_t 的定义是 long,它是一个 32 位有符号值 - 它可以在溢出前容纳 2**31。 CLOCKS_PER_SECOND 的值为 1000,因此应该可以使用 596 小时。

关于c++ - clock() 返回负值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8612108/

相关文章:

json - 铯CZML模型: is it possible to define multiple clock intervals?

c# - 同步两个日期时间

c++ - 在实例上调用时未找到模板类中的模板成员函数

c# - 如何在不实际重载的情况下创建具有重载好处的函数?

javascript - 构造函数报错

javascript - 单击时未调用函数内的 Coffeescript 函数

c++ - 运行可执行文件时找不到共享库,即使共享库存在于指定路径中

C++虚函数定义

c++ - 在常量初始值设定项中调用 constexpr 构造函数的限制

ios - 从另一个应用程序在 Apple 的时钟应用程序中设置新闹钟