Manpages

JMÉNO

signal − práce se signály v ANSI C

SYNTAXE

#include <signal.h>

void (*signal(int signum, void (*handler)(int)))(int);

POPIS

Systémové volání signal instaluje novou obslužnou funkci pro signál s číslem signum. Obsluha signálu je nastavena na handler, což může být uživatelsky definovaná funkce, nebo jedna z následujících konstant:

SIG_IGN

Signál bude ignorován.

SIG_DFL

Nastaví se standardní obsluha signálu.

Obslužná funkce dostane při zavolání jako parametr číslo signálu. To umožňuje použít jednu obslužnou funkci pro více signálů.

NÁVRATOVÁ HODNOTA

Funkce signal vrací předchozí hodnotu obsluhy signálu, nebo SIG_ERR , nastane-li chyba.

POZNÁMKY

Nelze nastavit obsluhu signálů SIGKILL a SIGSTOP.

V Linuxu se na rozdíl od systémů BSD obsluha signálu vrací při příchodu signálu na standardní hodnotu. Když ale použijete #include <bsd/signal.h> místo <signal.h> , je funkce signal předefinována na __bsd_signal a chová se jako v BSD. Obě verze funkce signal jsou knihovní funkce, které používají systémové volání sigaction(2).

Není−li Vám jasná syntaxe uvedená na začátku této manuálové stránky, možná Vám pomůže tento ekvivalentní zápis:

typedef void (*sighandler_t)(int);
sighandler_t signal(int
signum, sighandler_t handler);

Podle normy POSIX není definováno chování procesu poté, co ignoruje signál SIGFPE, SIGILL, nebo SIGSEGV, který nebyl generován funkcemi kill() nebo raise(). Celočíselné dělení nulou dává nedefinovaný výsledek a na některých architekturách generuje signál SIGFPE. Ignorování tohoto signálu může způsobit zacyklení procesu.

SPLŇUJE STANDARDY

ANSI C

DALŠÍ INFORMACE

kill(1), kill(2), killpg(2), pause(2), raise(3), sigaction(2), signal(7), sigsetops(3), sigvec(2), alarm(2).

VAROVÁNÍ

Překlad je pravděpodobně zastaralý. Pokud chcete pomoci s jeho aktualizací, zamiřte na http://man-pages-cs-wiki.homelinux.net/