Я пытаюсь создать функцию цикла, основанную на времени. После итерации он будет печатать каждые 60 секунд «60 секунд». Но этот код приводит меня к паре «60 секунд прошло», в то время как на самом деле я смотрю даже не показываю 1 минуту. Я пробовал ниже, но я ожидаю, что он покажет мне эту информацию, но это не так (только первый пара строк итераций, после чего нет ..)using difftime для параметра цикла
Может ли кто-нибудь помочь в этом вопросе? Спасибо
#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) и обычно считается плохой практикой, если его вообще можно избежать. Ваша ОС должна обеспечить способ приостановки в течение определенного времени (например, sleep (3)). – dmckee