我已经创建了一个服务器程序,并且在函数'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/