我有一段使用 Linux POSIX 间隔计时器(timer_create、timer_settime...)的代码,我想将其移植到 Windows。
是否有一个适用于两个平台的解决方案?
更新:
timer_create将在定时器到期时通过上升信号或触发函数来通知调用者
最佳答案
通过 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
}
关于c - POSIX Linux 间隔定时器的可移植解决方案(timer_create、timer_settime...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51656515/