POSIX Linux间隔计时器的便携式解决方案(timer_create,timer_settime ...)

时间:2018-08-02 14:49:36

标签: c linux windows timer signals

我有一段使用Linux POSIX间隔计时器(timer_create,timer_settime ...)的代码,希望将其移植到Windows。

是否有在两个平台上都可以使用的解决方案?

更新:

timer_create将在计时器到期时通过发出信号或触发功能来通知调用者

2 个答案:

答案 0 :(得分:0)

通过CygWin,POSIX函数通常可以在  Linux和Windows。

例如,以下代码可以在Cygwin中很好地编译和运行:

#include <signal.h>
#include <unistd.h>
#include <time.h>
int main()
{
    timer_t tmr;
    //error checking omitted for brevity
    timer_create(CLOCK_REALTIME, &(struct sigevent){ .sigev_notify=SIGEV_SIGNAL, .sigev_signo=SIGALRM}, &tmr);
    timer_settime(tmr, 0, &(struct itimerspec){ .it_value={.tv_sec=3}}, 0);
    pause(); //will break after 3s
}

答案 1 :(得分:-2)

考虑为c ++ 11使用std::chrono功能 http://www.cplusplus.com/reference/chrono/