時間に基づいてループ関数を作成しようとしています。反復処理後、60秒ごとに60秒経過して印刷されます。しかし、このコードの結果、私は実際に私が見ても1分もまだ表示されません "60秒が経過したカップルになります。 私は以下を試みたが、私はこの情報を私に示すことを期待していますが、 )繰り返しの行のカップル。後で..)difftime forループパラメータを使用
誰もこの問題で助けることができますか?でも一秒が経過する前に
#include <stdio.h>
#include <time.h>
int main()
{
time_t start,stop;
start = time(NULL);
time(&start);
int iteration, i;
for (iteration = 1; iteration <= 500; iteration++) {
for (i = 0; i <= 50; i++) {
printf("looping while waiting 60 second..\n");
}
stop = time(NULL);
int diff = difftime(start, stop);
if (diff % 60 == 0) {
printf("60 second passed..");}
}
return 1;
}
にBTW - これは「ビジー・ウェイティング」(http://en.wikipedia.org/wiki/Busy_waiting)の例であり、一般的には避けることができない場合、貧困対策とみなされています。お使いのOSは、指定された時間(例えばsleep(3))の間、一時停止する手段を提供する必要があります。 – dmckee