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

C++ Timer (Wait A Certain Period Of Time)

本文关键字:一段时间 等待 计时器 C++      更新时间:2023-10-16

我正在尝试编写一些Linux代码,每30秒发送一条消息。到目前为止,我拥有的是:

#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()给了我两次之间的差值。我不能使用sleep()之类的东西,因为程序可能随时收到消息。

我试图实现这一点的方法是:获取初始时间,然后每个循环都获取之后的时间,如果两次之间的时间差为30秒,则发送一条消息。

有什么想法吗?如果有人能为我指明正确的方向,我将不胜感激。

David说得对。它起作用了,只是直到我使用std::flush

才显示