]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man3/siginterrupt.3
err.3: EXAMPLES: use EXIT_FAILURE rather than 1 as exit status
[thirdparty/man-pages.git] / man3 / siginterrupt.3
CommitLineData
fea681da
MK
1.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
2.\"
93015253 3.\" %%%LICENSE_START(VERBATIM)
fea681da
MK
4.\" Permission is granted to make and distribute verbatim copies of this
5.\" manual provided the copyright notice and this permission notice are
6.\" preserved on all copies.
7.\"
8.\" Permission is granted to copy and distribute modified versions of this
9.\" manual under the conditions for verbatim copying, provided that the
10.\" entire resulting derived work is distributed under the terms of a
11.\" permission notice identical to this one.
c13182ef 12.\"
fea681da
MK
13.\" Since the Linux kernel and libraries are constantly changing, this
14.\" manual page may be incorrect or out-of-date. The author(s) assume no
15.\" responsibility for errors or omissions, or for damages resulting from
16.\" the use of the information contained herein. The author(s) may not
17.\" have taken the same level of care in the production of this manual,
18.\" which is licensed free of charge, as they might when working
19.\" professionally.
c13182ef 20.\"
fea681da
MK
21.\" Formatted or processed versions of this manual, if unaccompanied by
22.\" the source, must acknowledge the copyright and authors of this work.
4b72fb64 23.\" %%%LICENSE_END
fea681da
MK
24.\"
25.\" References consulted:
26.\" Linux libc source code
27.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
28.\" 386BSD man pages
29.\" Modified Sun Jul 25 10:40:51 1993 by Rik Faith (faith@cs.unc.edu)
30.\" Modified Sun Apr 14 16:20:34 1996 by Andries Brouwer (aeb@cwi.nl)
97986708 31.TH SIGINTERRUPT 3 2016-03-15 "" "Linux Programmer's Manual"
fea681da
MK
32.SH NAME
33siginterrupt \- allow signals to interrupt system calls
34.SH SYNOPSIS
35.nf
36.B #include <signal.h>
68e4db0a 37.PP
fea681da
MK
38.BI "int siginterrupt(int " sig ", int " flag );
39.fi
68e4db0a 40.PP
cc4615cc
MK
41.in -4n
42Feature Test Macro Requirements for glibc (see
43.BR feature_test_macros (7)):
44.in
68e4db0a 45.PP
cc4615cc 46.BR siginterrupt ():
4e35cec6
MK
47.ad l
48.RS 4
d59161f9 49_XOPEN_SOURCE\ >=\ 500
cf7fa0a1 50.\" || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
cf7fa0a1 51 || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L
d59161f9 52 || /* Glibc versions <= 2.19: */ _BSD_SOURCE
4e35cec6
MK
53.RE
54.ad
fea681da 55.SH DESCRIPTION
60a90ecd
MK
56The
57.BR siginterrupt ()
d9bfdb9c 58function changes the restart behavior when
c13182ef
MK
59a system call is interrupted by the signal \fIsig\fP.
60If the \fIflag\fP
61argument is false (0), then system calls will be restarted if interrupted
62by the specified signal \fIsig\fP.
d9bfdb9c 63This is the default behavior in Linux.
fea681da 64.PP
055e4eb7 65If the \fIflag\fP argument is true (1) and no data has been transferred,
fea681da 66then a system call interrupted by the signal \fIsig\fP will return \-1
28d03ce9 67and \fIerrno\fP will be set to
055e4eb7 68.BR EINTR .
fea681da 69.PP
055e4eb7 70If the \fIflag\fP argument is true (1) and data transfer has started,
fea681da
MK
71then the system call will be interrupted and will return the actual
72amount of data transferred.
47297adb 73.SH RETURN VALUE
60a90ecd
MK
74The
75.BR siginterrupt ()
d82911be 76function returns 0 on success.
433356dc
MK
77It returns \-1 if the
78signal number
79.I sig
80is invalid, with
81.I errno
82set to indicate the cause of the error.
fea681da
MK
83.SH ERRORS
84.TP
85.B EINVAL
86The specified signal number is invalid.
5575c22f 87.SH ATTRIBUTES
8272c761
PH
88For an explanation of the terms used in this section, see
89.BR attributes (7).
90.TS
91allbox;
92lb lb lb
93l l l.
94Interface Attribute Value
95T{
5575c22f 96.BR siginterrupt ()
abeffec2 97T} Thread safety MT-Unsafe const:sigintr
8272c761 98.TE
47297adb 99.SH CONFORMING TO
68e1685c 1004.3BSD, POSIX.1-2001.
4b8234be
MK
101POSIX.1-2008 marks
102.BR siginterrupt ()
0ae4b67f
MK
103as obsolete, recommending the use of
104.BR sigaction (2)
105with the
106.B SA_RESTART
107flag instead.
47297adb 108.SH SEE ALSO
fea681da 109.BR signal (2)