Provided by: manpages-pl-dev_20060617-3_all bug

NAZWA

       signal - obsluga sygnalow ANSI C

SK/LADNIA

       #include <signal.h>

       typedef void (*sighandler_t)(int);

       sighandler_t signal(int signum, sighandler_t handler);

OPIS

       Funkcja  systemowa  signal() instaluje now obslug sygnalu dla sygnalu o
       numerze signum.  Obsluga sygnalu ustawiana jest  na  sighandler,  ktory
       moe by funkcj podan przez uytkownika lub SIG_IGN albo SIG_DFL.

       Po  przyslaniu  sygnalu  o numerze signum dzieje si, co nastpuje.  Jeli
       obsluga odpowiedniego sygnalu zostala ustawiona na SIG_IGN,  to  sygnal
       jest  ignorowany.   Jeli  obsluga  zostala  ustawiona  na  SIG_DFL,  to
       podejmowana jest domylna akcja skojarzona z sygnalem (patrz signal(7)).
       Ostatecznie,  Jeli  jako  obsluga  sygnalu  zostala  ustawiona function
       sighandler, to najpierw albo obsluga sygnalu jest inicjowana na SIG_DFL
       albo  odbywa  si zalene od implementacji blokowanie sygnalu, a nastpnie
       wywolywana jest funkcja sighandler z argumentem signum.

       Uywanie  funkcji  obslugi  sygnalu  jest   nazywane   "przechwytywaniem
       sygnalu".   Sygnaly  SIGKILL i SIGSTOP nie mog by ani przechwycone, ani
       zignorowane.

WARTO ZWRACANA

       Funkcja signal() zwraca poprzedni warto obslugi sygnalu, lub SIG_ERR  w
       przypadku bldu.

PRZENONO

       Oryginalne  uniksowe  signal()  zainicjalizowaloby  obslug  sygnalu  na
       SIG_DFL i to samo robi System  V  (oraz  jdro  Linuksa  i  libc4,5).  Z
       drugiej  strony,  BSD  nie  inicjalizuje  obslugi  sygnalu, ale blokuje
       nowopojawiajce si egzemplarze tego sygnalu podczas wywolywania  funkcji
       obslugi. Biblioteka glibc2 naladuje zachowanie BSD.

       Jeli w systemie opartym o libc5 zostanie wlczone <bsd/signal.h> zamiast
       <signal.h>, to signal  zostanie  przedefiniowane  jako  __bsd_signal  i
       bdzie mialo semantyk BSD. Nie jest to zalecane.

       Jeli w systemie opartym o glibc2 zdefiniowane zostanie makro testowania
       cechy,  takie  jak  _XOPEN_SOURCE  lub  zostanie  uyta  osobna  funkcja
       sysv_signal, otrzyma si zachowanie klasyczne. Nie jest to zalecane.

       Proba  zmiany  semantyki  tej  funkcji  za  pomoc  przedefiniowywania i
       wlczania plikow naglowkowych nie jest dobrym pomyslem. Lepiej  w  ogole
       unika funkcji signal i poslugiwa si zamiast niej sigaction(2).

UWAGI

       Zgodnie ze standardem POSIX, zachowanie procesu po zignorowaniu sygnalu
       SIGFPE, SIGILL lub SIGSEGV, ktory nie  byl  wygenerowany  przez  funkcj
       kill(2)  ani  raise(3),  jest  niezdefiniowane.   Dzielenie  przez zero
       liczby   calkowitej   nie   ma   okrelonego   wyniku.   Na   niektorych
       architekturach   generuje   to   sygnal   SIGFPE.    (Rownie  dzielenie
       najmniejszej  liczby  ujemnej  przez  -1  moe  spowodowa  wygenerowanie
       SIGFPE.)  Ignorowanie tego sygnalu moe doprowadzi do ptli nieskoczonej.

       Zgodnie  ze standardem POSIX (3.3.1.3) nie jest okrelone, co sie stanie
       gdy SIGCHLD zostanie ustawiony na SIG_IGN.  W  tym  miejscu  zachowanie
       BSD  i  SYSV roni si, powodujc nie dzialanie na Linuksie oprogramowania
       BSD, ktore ustawia akcj dla SIGCHLD na SIG_IGN.

       Uycie  sighandler_t  jest  rozszerzeniem   GNU.    Rone   wersje   libc
       predefiniuj  ten  typ;  libc4  i  libc5  definiuj  SignalHandler, glibc
       definiuje  sig_t,  a  gdy   zdefiniowane   jest   _GNU_SOURCE,   rownie
       sighandler_t.

ZGODNE Z

       ANSI C

ZOBACZ TAKE

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

INFORMACJE O T/LUMACZENIU

       Powysze tlumaczenie pochodzi z nieistniejcego ju  Projektu  Tlumaczenia
       Manuali  i  moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
       opisem a rzeczywistym zachowaniem  opisywanego  programu  lub  funkcji,
       prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.