siginterrupt - Allow signals to interrupt functions
int flag );
Standard C Library (libc)
Berkeley Compatibility Library (libbsd.a)
Interfaces documented on this reference page conform to
industry standards as follows:
siginterrupt() (libc version): XSH4.2
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
Specifies the expected interrupt signal. Indicates
whether the function is to restart when interrupted by the
specified signal. When the flag parameter is TRUE, restart
is disabled. When the flag parameter is FALSE, restart is
The siginterrupt() function is used to change the restart
behavior of a system call when it is interrupted by the
signal specified by the sig parameter. When the flag
parameter is FALSE (0), system calls restart when they are
interrupted by the sig signal and no data has yet been
When the flag parameter is TRUE (1), restart of system
calls is disabled. When a system call is interrupted by
the sig signal and no data has been transferred, the function
returns a value of -1 with errno set to [EINTR]. Otherwise,
interrupted system calls that have started transferring
data return a value that is the number of data
bytes actually transferred.
[Tru64 UNIX] System call interrupt is the default behavior
unless the calling program has been linked with the
libbsd library and the libbsd version of signal() has been
The siginterrupt() function is provided for compatibility
with BSD systems. When writing or rewriting portable
applications, use the sigaction() function with the
SA_RESTART option instead of siginterrupt().
The use of the siginterrupt() function does not affect
signal-handling semantics in any other way. Programs may
switch between restartable and interruptible system call
operation as often as desired in the execution of a
Issuing a siginterrupt() call during the execution of a
signal handler causes the new action to take place when
the next instance of the specified signal is caught.
Upon successful completion, siginterrupt() returns a value
of 0 (zero). Otherwise, a value of -1 is returned to indicate
that an invalid signal value has been used.
If the siginterrupt() function fails, errno may be set to
the following value: The value of the sig parameter does
not represent a valid signal.
Functions: sigaction(2), sigprocmask(2), sigsuspend(2)
[ Back ]