siginterrupt(3)siginterrupt(3)Namesiginterrupt - allow signals to interrupt system calls
Syntax
siginterrupt(sig, flag)
int sig, flag;
Description
The system call is used to change the system call restart behavior when
a system call is interrupted by the specified signal. If the flag is
false (0), then system calls will be restarted if they are interrupted
by the specified signal and no data has been transferred yet. System
call restart is the default behavior on 4.2 BSD.
If the flag is true (1), then restarting of system calls is disabled.
If a system call is interrupted by the specified signal and no data has
been transferred, the system call will return -1 with errno set to
EINTR. Interrupted system calls that have started transferring data
will return the amount of data actually transferred. System call
interrupt is the signal behavior found on 4.1 BSD and AT&T System V
systems.
Note that the new signal handling semantics are not altered in any
other way. Most notably, signal handlers always remain installed until
explicitly changed by a subsequent call, and the signal mask operates
as documented in Programs may switch between restartable and interruptā
ible system call operation as often as desired in the execution of a
program.
Issuing a call during the execution of a signal handler will cause the
new action to take place on the next signal to be caught.
Environment
This library routine uses an extension of the system call that is not
available in ULTRIX 2.0 or earlier versions. Hence it should not be
used if backward compatibility is needed.
Return Values
A 0 value indicates that the call succeeded. A -1 value indicates that
an invalid signal number has been supplied.
See Alsosigvec(2), sigblock(2), sigpause(2), sigsetmask(2)4.3 Berkeley Distributionsiginterrupt(3)