NAME
siginterrupt — allow signals to interrupt functions
SYNOPSIS
#include <signal.h>
int siginterrupt(int sig, int flag);
DESCRIPTION
The
siginterrupt()
function is used to change the
restart behaviour when a function is interrupted by the
specified signal. The function
siginterrupt(sig,
flag)
has an effect as if implemented as:
siginterrupt(int sig, int flag) {
int ret;
struct sigaction act;
(void) sigaction(sig, NULL, &act);
if (flag)
act.sa_flags &= ~SA_RESTART;
else
act.sa_flags |= SA_RESTART;
ret = sigaction(sig, &act, NULL);
return ret;
}
RETURN VALUE
Upon successful completion,
siginterrupt()
returns 0. Otherwise -1 is returned and
errno
is set to indicate the error.
ERRORS
The
siginterrupt()
function will fail if:
- [EINVAL]
The
sig
argument is not a valid signal number.
APPLICATION USAGE
The
siginterrupt()
function supports programs written to historical system interfaces.
A portable application, when being written or rewritten, should use
sigaction()
with the
SA_RESTART
flag instead of
siginterrupt().
Threads Considerations
System call restart is a process attribute. Therefore, changing the
restart behavior affects all threads in the process.
CHANGE HISTORY
First released in Issue 4, Version 2.