中断sleep()函数

sle*_*eep 7 c++

如何使用信号处理程序中断sleep()?

小智 5

sleep()功能手册页:

sleep()函数暂停执行调用线程,直到秒数已经过去或者信号被传递给线程,其动作是调用信号捕获函数或终止线程或进程.系统活动可能会使睡眠延长不确定的数量.

因此,如果将信号发送到应用程序,则在睡眠调用之后从指令恢复其执行.

  • @sleep:不,不要使用`alarm`.其手册页指出:"sleep(3)可以使用SIGALRM实现;混合调用alarm()和sleep(3)是一个坏主意." 要发送信号,只需使用`raise(3)`,`kill(2)`,`killpg(2)`,`pthread_kill(3)`或`tgkill(2)`.使用用户定义的信号之一`SIGUSR1`或`SIGUSR2`.另见`signal(7)`. (2认同)