Next: Terminals and Ptys, Previous: Processes, Up: POSIX
Procedures to raise, handle and wait for signals.
Send the signal sig to the specified process or group of processes.
pid specifies the processes to which the signal is sent:
- pid greater than 0
- The process whose identifier is pid.
- pid equal to 0
- All processes in the current process group.
- pid less than -1
- The process group whose identifier is -pid
- pid equal to -1
- If the process is privileged, all processes except for some special system processes. Otherwise, all processes with the current effective user ID.
sig should be specified using a variable corresponding to the Unix symbolic name, e.g.,
Send the specified signal sig to the current process, where sig is as described for the
killprocedure.
Install or report the signal handler for a specified signal.
signum is the signal number, which can be specified using the value of variables such as
SIGINT.If action is omitted,
sigactionreturns a pair: The car is the current signal hander, which will be either an integer with the valueSIG_DFL(default action) orSIG_IGN(ignore), or the Scheme procedure which handles the signal, or#fif a non-Scheme procedure handles the signal. The cdr contains the currentsigactionflags for the handler.If action is provided, it is installed as the new handler for signum. action can be a Scheme procedure taking one argument, or the value of
SIG_DFL(default action) orSIG_IGN(ignore), or#fto restore whatever signal handler was installed beforesigactionwas first used. Optional third arg flags can be specified for the new handler (SA_RESTARTwill always be added if it's available and the system is using restartable system calls). The return value is a pair with information about the old handler as described above.This interface does not provide access to the "signal blocking" facility. Maybe this is not needed, since the thread support may provide solutions to the problem of consistent access to data structures.
Return all signal handlers to the values they had before any call to
sigactionwas made.
Set a timer to raise a
SIGALRMsignal after the specified number of seconds (an integer). It's advisable to install a signal handler forSIGALRMbeforehand, since the default action is to terminate the process.The return value indicates the time remaining for the previous alarm, if any. The new value replaces the previous alarm. If there was no previous alarm, return zero.
Pause the current process (thread?) until a signal arrives whose action is to either terminate the current process or invoke a handler procedure.