sigprocmask.2: Add discussion of rt_sigprocmask(2)

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Michael Kerrisk 2015-02-19 10:26:54 +01:00
parent 78898dc791
commit 166b65db90
1 changed files with 31 additions and 1 deletions

View File

@ -28,7 +28,7 @@
.\"
.TH SIGPROCMASK 2 2013-04-19 "Linux" "Linux Programmer's Manual"
.SH NAME
sigprocmask \- examine and change blocked signals
sigprocmask, rt_sigprocmask \- examine and change blocked signals
.SH SYNOPSIS
.B #include <signal.h>
.sp
@ -141,6 +141,36 @@ or
See
.BR sigsetops (3)
for details on manipulating signal sets.
.\"
.SS C library/kernel ABI differences
The original Linux system call was named
.BR sigprocmask ().
However, with the addition of real-time signals in Linux 2.2,
the fixed-size, 32-bit
.IR sigset_t
type supported by that system call was no longer fit for purpose.
Consequently, a new system call,
.BR rt_sigprocmask (),
was added to support an enlarged
.IR sigset_t
type.
The new system call takes a fourth argument,
.IR "size_t sigsetsize" ,
which specifies the size in bytes of the signal sets in
.IR set
and
.IR oldset .
This argument is currently required to have the value
.IR sizeof(sigset_t)
(or the error
.B EINVAL
results).
The glibc
.BR sigprocmask ()
wrapper function hides these details from us, transparently calling
.BR rt_sigprocmask ()
when the kernel provides it.
.\"
.SH SEE ALSO
.BR kill (2),
.BR pause (2),