sigsuspend 函数

321 阅读1分钟

在介绍我们的 sigsuspend 函数之前,我想,我们需要先对 pause 函数做一个简要的介绍。

pause 函数一般的工作在于,令我们的进程进入阻塞状态,直到外部时间产生为止。 输入图片说明

(pause 函数可以让我们的进程直接进入阻塞态,直到有信号(外部事件)到来)

但是信号屏蔽字的机制之下,它也有着自己的风险,我们可以看一下这个流程。

输入图片说明

可以发现,如果信号恰好在解除信号屏蔽和等待新信号的这个期间过来,且之后,没有新信号到来。

那么我们的程序,自然而然就陷入无限休眠。

解决的办法,自然就是将解除屏蔽和等待新信号两件事情,合二为一,也就是我们的 sigsuspend 函数.

输入图片说明