私はサーバープログラムを作成しましたが、 'clock()'関数が負の値を返した(そしてサーバーがクラッシュした)ところで、何らかのエラーが2回発生しました。プログラムが100時間以上実行されたときに、Windows 32ビットVPSで両方の時間に発生しました。clock()は負の値を返しますか?
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;
}
}
、かなりシンプルです:
ここで私は(適切な場合にカット)main.cppにして持っている設定です。 clock()はプログラムの残りの部分で広範囲に使用されているので、このように不具合が発生すると多くの問題が発生します。
私は、なぜそれが負の値を返すのだろうと思います、どうすれば修正できますか?
ありがとうございました。
これも私が見つけたものです。 – Edwin
プログラムは596時間実行されている可能性があります。正直なところ、一度にどれくらいの時間が経過したのか分かりませんでした。もしそうなら、それは問題かもしれません。 clock()が-1を返しても、clock_tを0にリセットできますか? – Matthew
C99によると、「使用されたプロセッサ時間が使用できない場合、またはその値**を表すことができない場合**」関数 は値(clock_t)( - 1)を返します。 – fefe