sigpause(2) - Linux 手册页
名称
sigpause - 原子地释放阻塞的信号并等待中断概要
#include <signal.h> int sigpause(int sigmask); /* BSD */ int sigpause(int sig); /* Unix95 */
描述
函数 sigpause 被设计用来等待某个信号。它会更改进程的信号掩码(阻塞的信号集合),然后等待信号到达。当信号到达时,原始信号掩码会被恢复。
返回值
如果 sigpause 返回,则表示它被信号中断,返回值是 -1,并且 errno 被设置为 EINTR。历史
这个函数的经典 BSD 版本出现在 4.2BSD 中。它将进程的信号掩码设置为 sigmask。当信号的数量增加到超过 32 个时,这个版本被不兼容的 Unix95 版本取代,该版本只会从进程的信号掩码中移除指定的信号 sig。 两个具有相同名称的不兼容函数的糟糕情况通过 sigsuspend(2) 函数解决,该函数接受一个 sigset_t * 参数(而不是一个 int)。在 Linux 上,这个例程仅在 Sparc (sparc64) 架构上是系统调用。Libc4 和 libc5 仅了解 BSD 版本。Glibc 除非定义了 _XOPEN_SOURCE,否则使用 BSD 版本。