Provided by:
manpages-cs_0.18.20090209-3_all 
JM'ENO
sigaction, sigprocmask, sigpending, sigsuspend - Funkce POSIXu pro
praci se signaly.
SYNTAXE
#include <signal.h>
int sigaction(int signum, const struct sigaction *act, struct sigaction
*oldact);
int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);
int sigpending(sigset_t *set);
int sigsuspend(const sigset_t *mask);
POPIS
Systemovym volanim sigaction se uruje, jakou akci ma proces provest pi
obdreni uriteho signalu.
Parametrem signum je uren signal a lze zadat kterykoli platny signal
krom SIGKILL a SIGSTOP.
Je-li hodnota act nenulova, je pro signal signum nainstalovana akce
act. Je-li hodnota oldact nenulova, pedchozi akce je uloena do oldact.
Struktura sigaction je definovana jako
struct sigaction {
void (*sa_handler)(int);
sigset_t sa_mask;
int sa_flags;
void (*sa_restorer)(void);
}
sa_handler uruje akci, ktera ma byt piazena signalu signum a me
obsahovat SIG_DFL pro implicitni akci, SIG_IGN pro ignorovani signalu,
nebo ukazatel na funkci oetujici signal.
sa_mask je maska signal, ktere maji byt zablokovany pi obsluze signalu.
Navic je zablokovan signal, ktery vyvolal akci, nejsou-li nastaveny
piznaky SA_NODEFER nebo SA_NOMASK .
sa_flags je mnoina piznak, ktere ovlivuji obsluhu signalu. Je to
logicky souet nasledujicich bitovych konstant:
SA_NOCLDSTOP
Je-li signum SIGCHLD, negeneruje se signal pi zastaveni
dtskeho procesu (tj. dostane-li tento proces signal
SIGSTOP, SIGTSTP, SIGTTIN nebo SIGTTOU).
SA_ONESHOT nebo SA_RESETHAND
Pote, co je zavolana obsluna funkce, se obsluha signalu
vraci do implicitniho stavu. (Takto se normaln chova
systemove volani signal(2) .)
SA_RESTART
Nastavi kompatibilni chovani s BSD: urita systemova
volani pak jsou po zpracovani signalu restartovana.
SA_NOMASK neboli SA_NODEFER
Umoni pichod daliho signalu bhem jeho vlastni obslune
funkce.
Pole sa_restorer je neaktualni a nemlo by byt pouivano.
Systemovym volanim sigprocmask lze mnit seznam momentaln blokovanych
signal. Zalei na parametru how, jaka zmna nastane:
SIG_BLOCK
Novy seznam blokovanych signal bude obsahovat dosud
blokovane signaly a signaly v parametru set .
SIG_UNBLOCK
Signaly v parametru set jsou odstranny ze seznamu
blokovanych signal. Je pipustne uvest v parametru set
signal, ktery neni blokovan.
SIG_SETMASK
Seznam blokovanych signal je nastaven na set.
Je-li hodnota parametru oldset nenulova, je pedchozi seznam blokovanych
signal uloen do oldset.
Systemove volani sigpending dovoluje zjistit nevyizene signaly (ktere
pily pi zablokovani). Maska nevyizenych signal je uloena do parametru
set.
Volani sigsuspend pechodn nahradi masku signal maskou zadanou v
parametru mask a pote pozdri provadni procesu do obdreni signalu.
N'AVRATOV'E HODNOTY
Funkce sigaction, sigprocmask, sigpending a sigsuspend vraci 0 pi
uspnem provedeni a -1 pi chyb.
CHYBOV'E HODNOTY
EINVAL Byl zadan neplatny signal. Tato chyba je take generovana pi
pokusu zmnit obsluhu signal SIGKILL nebo SIGSTOP, ktere nemohou
byt zachyceny.
EFAULT act, oldact, set nebo oldset ukazuji do oblasti pamti, ktera
nepati do adresniho prostoru procesu.
EINTR Systemove volani bylo perueno.
POZN'AMKY
Signaly SIGKILL or SIGSTOP nelze blokovat volanim sigprocmask. Pokusy o
to budou v tichosti ignorovany.
Podle normy POSIX neni definovano chovani procesu pote, co ignoruje
signal SIGFPE, SIGILL, nebo SIGSEGV, ktery nebyl generovan funkcemi
kill() nebo raise(). Celoiselne dleni nulou dava nedefinovany vysledek
a na nkterych architekturach generuje signal SIGFPE. Ignorovani tohoto
signalu me zpsobit zacykleni procesu.
Nastaveni akce pro signal SIGCHLD na SIG_IGN zpsobi automaticky zanik
dtskych proces po jejich ukoneni.
Norma POSIX definuje pouze piznak SA_NOCLDSTOP. Pouivani jinych piznak
v sa_flags je nepenositelne.
Piznak SA_RESETHAND je kompatibilni se stejnojmennym piznakem v
systemech SVr4.
Piznak SA_NODEFER je kompatibilni se stejnojmennym piznakem v SVr4 ve
verzich jadra 1.3.9 a vyich. Ve starich verzich jadra linuxova
implementace dovolovala pijeti libovolneho signalu, nejen toho ktery
byl instalovan (co zpsobovalo ignorovani nastaveni sa_mask ).
Jmena SA_RESETHAND and SA_NODEFER jsou urena pro kompatibilitu se SVr4
a byla zavedena ve verzi knihovny libc 3.0.9.
Pro zjitni momentalniho stavu obsluhy signal lze volat funkci sigaction
s parametrem act rovnym nule. Zadate-li nulove parametry act a oldact,
lze ji pouit ke kontrole, je-li dany signal na tom kterem systemu
pouitelny.
Pro podrobnosti o manipulaci se skupinami signal viz sigsetops(3)
SPLUJE STANDARDY
POSIX, SVr4. Dokumentace SVr4 se nezmiuje o chybove hodnot EINTR.
DAL'I INFORMACE
kill(1), kill(2), killpg(2), pause(2), raise(3), siginterrupt(3),
signal(2), signal(7), sigsetops(3), sigvec(2)
VAROV'AN'I
Peklad je pravdpodobn zastaraly. Pokud chcete pomoci s jeho
aktualizaci, zamite na http://man-pages-cs-wiki.homelinux.net/
Linux 1.3 18.unora 1997 SIGACTION(2)