.\" 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 .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)