我正在尝试编写一些每隔30秒发送一条消息的Linux代码。到目前为止我所拥有的是:
#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
}
然而,当我运行它时,它似乎什么也没做。我理解它的方式,time()现在给我时间,而difftime()给了我2次之间的差异。我不能使用sleep()之类的东西,因为程序可能随时收到消息。
我试图让它工作的方式是:获取初始时间,然后每个循环获得之后的时间,如果2次之间的差异为30秒,则发送消息。
任何想法在这里可能是错的?如果有人能指出我正确的方向,我会很感激。
答案 0 :(得分:0)