我已经创建了一个服务器程序,并且某个错误发生了两次,其中函数“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/