Provided by: manpages-cs_0.18.20090209-3_all bug

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)