Advanced Programming in the UNIX® Environment

(lily) #1
ptg10805159

318 Signals Chapter 10


SIGEMT This indicates an implementation-defined hardwarefault.

The name EMT comes from the PDP-11 ‘‘emulator trap’’instruction. Not all
platforms support this signal. On Linux, for example,SIGEMTis supported
only for selected architectures, such as SPARC, MIPS, and PA-RISC.

SIGFPE This signals an arithmetic exception, such as divide by 0, floating-point
overflow,and so on.
SIGFREEZE This signal is defined only by Solaris. It is used to notify processes that
need to take special action beforefreezing the system state, such as might
happen when a system goes into hibernation or suspended mode.

SIGHUP This signal is sent to the controlling process (session leader) associated
with a controlling terminal if a disconnect is detected by the terminal
interface. Referring to Figure9.13, we see that the signal is sent to the
process pointed to by the s_leaderfield in the sessionstructure.
This signal is generated for this condition only if the terminal’sCLOCAL
flag is not set. (TheCLOCALflag for a terminal is set if the attached
terminal is local. The flag tells the terminal driver to ignoreall modem
status lines.We describe how to set this flag in Chapter 18.)
Note that the session leader that receives this signal may be in the
background; see Figure9.7 for an example. This differs from the normal
terminal-generated signals (interrupt, quit, and suspend), which are
always delivered to the foreground process group.
This signal is also generated if the session leader terminates. In this case,
the signal is sent to each process in the foreground process group.
This signal is commonly used to notify daemon processes (Chapter 13) to
reread their configuration files. The reasonSIGHUPis chosen for this
task is that a daemon should not have a controlling terminal and would
normally never receive this signal.
SIGILL This signal indicates that the process has executed an illegal hardware
instruction.

4.3BSD generated this signal from theabortfunction.SIGABRTis now used
for this purpose.

SIGINFO This BSD signal is generated by the terminal driver when we type the
status key (often Control-T). This signal is sent to all processes in the
foreground process group (refer to Figure9.9). This signal normally
causes status information on processes in the foreground process group
to be displayed on the terminal.

Linux doesn’t provide support forSIGINFO,although the symbol is defined to
be the same value asSIGPWRon the Alpha platform. This is most likely to
provide some level of compatibility with softwaredeveloped for OSF/1.
Free download pdf