.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
.\"
+.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
.\"
.\" References consulted:
.\" Linux libc source code
.\" 386BSD man pages
.\" Modified Sun Jul 25 10:40:51 1993 by Rik Faith (faith@cs.unc.edu)
.\" Modified Sun Apr 14 16:20:34 1996 by Andries Brouwer (aeb@cwi.nl)
-.TH SIGINTERRUPT 3 1993-04-13 "" "Linux Programmer's Manual"
+.TH SIGINTERRUPT 3 2016-03-15 "" "Linux Programmer's Manual"
.SH NAME
siginterrupt \- allow signals to interrupt system calls
.SH SYNOPSIS
.nf
.B #include <signal.h>
-.sp
+.PP
.BI "int siginterrupt(int " sig ", int " flag );
.fi
+.PP
+.in -4n
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.in
+.PP
+.BR siginterrupt ():
+.ad l
+.RS 4
+_XOPEN_SOURCE\ >=\ 500
+.\" || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
+ || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L
+ || /* Glibc versions <= 2.19: */ _BSD_SOURCE
+.RE
+.ad
.SH DESCRIPTION
The
.BR siginterrupt ()
argument is false (0), then system calls will be restarted if interrupted
by the specified signal \fIsig\fP.
This is the default behavior in Linux.
-However, when a new signal handler is specified with the
-.BR signal (2)
-function, the system call is interrupted by default.
.PP
-If the \fIflags\fP argument is true (1) and no data has been transferred,
+If the \fIflag\fP argument is true (1) and no data has been transferred,
then a system call interrupted by the signal \fIsig\fP will return \-1
-and the global variable \fIerrno\fP will be set to \fBEINTR\fP.
+and \fIerrno\fP will be set to
+.BR EINTR .
.PP
-If the \fIflags\fP argument is true (1) and data transfer has started,
+If the \fIflag\fP argument is true (1) and data transfer has started,
then the system call will be interrupted and will return the actual
amount of data transferred.
-.SH "RETURN VALUE"
+.SH RETURN VALUE
The
.BR siginterrupt ()
-function returns 0 on success, or \-1 if the
-signal number \fIsig\fP is invalid.
+function returns 0 on success.
+It returns \-1 if the
+signal number
+.I sig
+is invalid, with
+.I errno
+set to indicate the cause of the error.
.SH ERRORS
.TP
.B EINVAL
The specified signal number is invalid.
-.SH "CONFORMING TO"
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lb lb lb
+l l l.
+Interface Attribute Value
+T{
+.BR siginterrupt ()
+T} Thread safety MT-Unsafe const:sigintr
+.TE
+.SH CONFORMING TO
4.3BSD, POSIX.1-2001.
-.SH "SEE ALSO"
+POSIX.1-2008 marks
+.BR siginterrupt ()
+as obsolete, recommending the use of
+.BR sigaction (2)
+with the
+.B SA_RESTART
+flag instead.
+.SH SEE ALSO
.BR signal (2)