저는 difftime을 사용하는 작은 C 프로그램을 가지고 있습니다. 정말 이상한데, 10 초가 지나면 그 라인을 출력하지 않습니다.이 작은 C 프로그램이 예상대로 작동하지 않는 이유는 무엇입니까?
그러나 수면 입력란의 주석 처리를 제거하면 문제가 해결됩니다.
왜 이런 생각입니까?
/* difftime example */
#include <stdio.h> /* printf */
#include <time.h> /* time_t, struct tm, difftime, time, mktime */
int main()
{
time_t start, stop;
start = time(NULL);
for(; /* some condition that takes forever to meet */;) {
// do stuff that apparently takes forever.
stop = time(NULL);
double diff = difftime(stop, start);
//sleep (1);
if (diff >= 10) {
printf("10 seconds passed...");
start = time(NULL);
}
}
}
BTW : 코드가 잘 컴파일되고 Raspberry Pi에서 실행 중입니다. 3.6.11+ # 474 PREEMPT 6 월 13 일 17:14:42 BST 2013 armv6l GNU/Linux
재생할 수 없습니다. 'printf()'에 개행 문자를 추가하면, 코드는'sleep (1)'의 유무에 상관없이 잘 동작합니다. 재현하는 데 필요한 정확한 단계를 설명하십시오. – NPE