C ++计时器(等待某段时间)

时间:2014-11-02 07:29:40

标签: c++ linux time timer client-server

我正在尝试编写一些每隔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秒,则发送消息。

任何想法在这里可能是错的?如果有人能指出我正确的方向,我会很感激。

1 个答案:

答案 0 :(得分:0)

大卫说得对。它工作,直到我使用std :: flush

才显示