在介绍我们的 sigsuspend 函数之前,我想,我们需要先对 pause 函数做一个简要的介绍。
pause 函数一般的工作在于,令我们的进程进入阻塞状态,直到外部时间产生为止。
(pause 函数可以让我们的进程直接进入阻塞态,直到有信号(外部事件)到来)
但是信号屏蔽字的机制之下,它也有着自己的风险,我们可以看一下这个流程。
可以发现,如果信号恰好在解除信号屏蔽和等待新信号的这个期间过来,且之后,没有新信号到来。
那么我们的程序,自然而然就陷入无限休眠。
解决的办法,自然就是将解除屏蔽和等待新信号两件事情,合二为一,也就是我们的 sigsuspend 函数.