SIGPAUSE - Linux手册页
Linux程序员手册 第3部分
更新日期: 2017-09-15
名称
sigpause-原子释放阻塞的信号并等待中断
语法
#include <signal.h> int sigpause(int sigmask); /* BSD (but see NOTES) */ int sigpause(int sig); /* System V / UNIX 95 */
返回值
如果sigpause()返回,则它被信号中断,返回值是-1,errno设置为EINTR。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
sigpause() | Thread safety | MT-Safe |
遵循规范
sigpause()的System V版本在POSIX.1-2001中进行了标准化。它在POSIX.1-2008中也已指定,已标记为过时。
备注
History
此功能的经典BSD版本出现在4.2BSD中。它将进程的信号掩码设置为sigmask。 UNIX 95对该功能的不兼容System V版本进行了标准化,该版本仅从进程的信号掩码中除去指定的信号sig。 sigsuspend(2)函数解决了两个同名不兼容函数的不幸情况,该函数采用sigset_t *参数(而不是int)。
Linux notes
在Linux上,此例程是仅在Sparc(sparc64)体系结构上的系统调用。
如果定义了_BSD_SOURCE功能测试宏并且未定义_POSIX_SOURCE,_POSIX_C_SOURCE,_XOPEN_SOURCE,_GNU_SOURCE或_SVID_SOURCE,则Glibc将使用BSD版本。否则,将使用System V版本,并且必须如下定义功能测试宏才能获取声明:
- *
- 从glibc 2.26开始:_XOPEN_SOURCE>= 500
- *
- Glibc 2.25和更早版本:_XOPEN_SOURCE
从glibc 2.19开始,仅System V版本由;公开。以前使用BSD sigpause()的应用程序应修改为使用sigsuspend(2)。
另外参见
kill(2),sigaction(2),sigprocmask(2),sigsuspend(2),sigblock(3),sigvec(3),feature_test_macros(7)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。