summaryrefslogtreecommitdiffstats
path: root/man3/siginterrupt.3
blob: 6e2fdfb04d5b843afc03c3342fa84fb80a38cff2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
.\" May be distributed under the GNU General Public License
.\" References consulted:
.\"     Linux libc source code
.\"     Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
.\"     386BSD man pages
.\" Modified Sun Jul 25 10:40:51 1993 by Rik Faith (faith@cs.unc.edu)
.TH SIGINTERRUPT 3  "April 13, 1993" "" "Linux Programmer's Manual"
.SH NAME
siginterrupt \- allow signals to interrupt system calls
.SH SYNOPSIS
.nf
.B #include <signal.h>
.sp
.BI "int siginterrupt(int " sig ", int " flag );
.fi
.SH DESCRIPTION
The \fBsiginterrupt()\fP function changes the restart behaviour when
a system call is interrupted by the signal \fIsig\fP.  If the \fIflag\fP 
argument is false (0), then systems calls will be restarted if interrupted 
by the specified signal \fIsig\fP.  This is the default behaviour in
Linux.  However, when a new signal handler is specified with the
\fBsignal\fP(2) function, the system call is interrupted by default.
.PP
If the \fIflags\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 \fIEINTR\fP.
.PP
If the \fIflags\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"
The \fBsiginterrupt()\fP function returns 0 on success, or -1 if the
signal number \fIsig\fP is invalid.
.SH "ERRORS"
.TP
.B EINVAL
The specified signal number is invalid.
.SH "CONFORMING TO"
BSD 4.3
.SH SEE ALSO
.BR signal (2)