Sky*_*eSM 3 c++ unix sleep timer
我通过sys/time.h中的setitimer函数在我的C++代码中使用了一个计时器.这将SIGALRM信号映射到我的计时器处理程序方法.在此之后我无法使用睡眠功能.我假设这是因为睡眠也使用SIGALRM信号.你能为这个问题建议任何解决方法吗?
感谢回复.
Car*_*rum 8
从alarm(2) 手册页:
alarm(2)
sleep()可以使用SIGALRM; 混合呼叫alarm()并且sleep()是一个坏主意.
sleep()
SIGALRM
alarm()
有些实现不使用SIGALRM,找到这样的机器并且你已经设置好了.否则,你可以尝试nanosleep(); 它安全地实施了.从nanosleep(2) 手册页:
nanosleep()
nanosleep(2)
相比sleep(3)和usleep(3),nanosleep()具有不影响任何信号的优点,它是由POSIX标准,它提供了更高的时间分辨率,并允许继续已经由一个信号更容易地中断睡眠.
sleep(3)
usleep(3)
归档时间:
15 年,9 月 前
查看次数:
1653 次
最近记录: