0
30 초마다 메시지를 보내는 일부 Linux 코드를 작성하려고합니다. 내가 지금까지 가지고있는 것은 :C++ 타이머 (일정 기간 대기)
#include <time.h>
time_t timeinit;
time_t timenow;
time(&timeinit);
while (1) {
time(&timenow);
if (difftime(timenow, timeinit) >= 30){
std::cout << "Timer Test";
time(&timeinit); //reset timeinit and recount 30 seconds
} //end if
}
그러나 나는 그것을 실행할 때 아무 것도하지 않는 것 같습니다. 내가 이해하는 방식으로, 시간()은 나에게 시간을주고, difftime()은 2 번 차이를 준다. 프로그램이 언제든지 메시지를받을 수 있기 때문에 sleep()과 같은 것을 사용할 수 없습니다.
내가 작동하도록하는 방법은 다음과 같습니다. 초기 시간을 얻은 다음 모든 루프가 그 다음 시간을 얻고 2 회 차이가 30 초인 경우 메시지를 보냅니다.
어떤 아이디어가 잘못되었을 수 있습니까? 누군가가 올바른 방향으로 나를 가리킬 수 있다면 고맙겠습니다.
두 가지 : 1)'difftime'에 의해 반환 된 값을 기록하여 그것이 그것이 무엇인지 확신 할 수있게하십시오. 2) 출력 라인의 끝에''std :: flush '를 추가하십시오. –
crontab을 사용하지 않는 이유는 무엇입니까? – Caduchon
코드는 훌륭합니다. 그것은 저에게 효과적입니다! 터미널에서 출력물을보기 위해 30 초를 기다리고 있기를 바랍니다. – Titus