SIGNAL(2) Linux - prirucka Programatora SIGNAL(2)
JMENO
signal - prace se signaly v ANSI C
SYNTAXE
#include <signal.h>
void (*signal(int signum, void (*handler)(int)))(int);
POPIS
Systemove volani signal instaluje novou obsluznou funkci pro signal s
cislem signum. Obsluha signalu je nastavena na handler, coz muze byt
uzivatelsky definovana funkce, nebo jedna z nasledujicich konstant:
SIG_IGN
Signal bude ignorovan.
SIG_DFL
Nastavi se standardni obsluha signalu.
Obsluzna funkce dostane pri zavolani jako parametr cislo signalu. To
umoznuje pouzit jednu obsluznou funkci pro vice signalu.
NAVRATOVA HODNOTA
Funkce signal vraci predchozi hodnotu obsluhy signalu, nebo SIG_ERR ,
nastane-li chyba.
POZNAMKY
Nelze nastavit obsluhu signalu SIGKILL a SIGSTOP.
V Linuxu se na rozdil od systemu BSD obsluha signalu vraci pri prichodu
signalu na standardni hodnotu. Kdyz ale pouzijete #include <bsd/sig-
nal.h> misto <signal.h> , je funkce signal predefinovana na __bsd_sig-
nal a chova se jako v BSD. Obe verze funkce signal jsou knihovni
funkce, ktere pouzivaji systemove volani sigaction(2).
Neni-li Vam jasna syntaxe uvedena na zacatku teto manualove stranky,
mozna Vam pomuze tento ekvivalentni zapis:
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
Podle normy POSIX neni definovano chovani procesu pote, co ignoruje
signal SIGFPE, SIGILL, nebo SIGSEGV, ktery nebyl generovan funkcemi
kill() nebo raise(). Celociselne deleni nulou dava nedefinovany vysle-
dek a na nekterych architekturach generuje signal SIGFPE. Ignorovani
tohoto signalu muze zpusobit zacykleni procesu.
SPLNUJE STANDARDY
ANSI C
DALSI INFORMACE
kill(1), kill(2), killpg(2), pause(2), raise(3), sigaction(2), sig-
nal(7), sigsetops(3), sigvec(2), alarm(2).
Linux 2.0 18. unora 1997 SIGNAL(2)