我有一段使用Linux POSIX间隔计时器(timer_create,timer_settime ...)的代码,希望将其移植到Windows。
是否有在两个平台上都可以使用的解决方案?
timer_create将在计时器到期时通过发出信号或触发功能来通知调用者
答案 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/