Provided by: manpages-pl-dev_0.7-2_all bug

NAZWA

       signal - obsługa sygnałów ANSI C

SKŁADNIA

       #include <signal.h>

       typedef void (*sighandler_t)(int);

       sighandler_t signal(int signum, sighandler_t handler);

OPIS

        Uwaga! To tłumaczenie może być nieaktualne!

       Funkcja  systemowa signal() instaluje nową obsługę sygnału dla sygnału o numerze signum.  Obsługa sygnału
       ustawiana jest na sighandler, który może być funkcją podaną przez użytkownika lub SIG_IGN albo SIG_DFL.

       Po przysłaniu sygnału o numerze signum dzieje się, co następuje.   Jeśli  obsługa  odpowiedniego  sygnału
       została  ustawiona na SIG_IGN, to sygnał jest ignorowany.  Jeśli obsługa została ustawiona na SIG_DFL, to
       podejmowana jest domyślna akcja skojarzona z sygnałem (patrz signal(7)).  Ostatecznie, Jeśli jako obsługa
       sygnału została ustawiona function sighandler, to  najpierw  albo  obsługa  sygnału  jest  inicjowana  na
       SIG_DFL  albo odbywa się zależne od implementacji blokowanie sygnału, a następnie wywoływana jest funkcja
       sighandler z argumentem signum.

       Używanie funkcji obsługi sygnału jest nazywane "przechwytywaniem sygnału".  Sygnały SIGKILL i SIGSTOP nie
       mogą być ani przechwycone, ani zignorowane.

WARTOŚĆ ZWRACANA

       Funkcja signal() zwraca poprzednią wartość obsługi sygnału, lub SIG_ERR w przypadku błędu.

PRZENOŚNOŚĆ

       Oryginalne uniksowe signal() zainicjalizowałoby obsługę sygnału na SIG_DFL i to samo robi System V  (oraz
       jądro  Linuksa  i  libc4,5).  Z  drugiej  strony,  BSD  nie  inicjalizuje  obsługi  sygnału,  ale blokuje
       nowopojawiające się egzemplarze tego sygnału  podczas  wywoływania  funkcji  obsługi.  Biblioteka  glibc2
       naśladuje zachowanie BSD.

       Jeśli  w systemie opartym o libc5 zostanie włączone <bsd/signal.h> zamiast <signal.h>, to signal zostanie
       przedefiniowane jako __bsd_signal i będzie miało semantykę BSD. Nie jest to zalecane.

       Jeśli w systemie opartym o glibc2 zdefiniowane zostanie makro testowania cechy, takie  jak  _XOPEN_SOURCE
       lub zostanie użyta osobna funkcja sysv_signal, otrzyma się zachowanie klasyczne. Nie jest to zalecane.

       Próba  zmiany semantyki tej funkcji za pomocą przedefiniowywania i włączania plików nagłówkowych nie jest
       dobrym pomysłem. Lepiej w ogóle unikać funkcji signal i posługiwać się zamiast niej sigaction(2).

UWAGI

       Zgodnie ze standardem POSIX, zachowanie procesu po zignorowaniu sygnału SIGFPE, SIGILL lub SIGSEGV, który
       nie był wygenerowany przez funkcję kill(2) ani raise(3),  jest  niezdefiniowane.   Dzielenie  przez  zero
       liczby  całkowitej  nie  ma  określonego  wyniku. Na niektórych architekturach generuje to sygnał SIGFPE.
       (Również  dzielenie  najmniejszej  liczby  ujemnej  przez  -1  może  spowodować  wygenerowanie   SIGFPE.)
       Ignorowanie tego sygnału może doprowadzić do pętli nieskończonej.

       Zgodnie ze standardem POSIX (3.3.1.3) nie jest określone, co sie stanie gdy SIGCHLD zostanie ustawiony na
       SIG_IGN.   W  tym  miejscu  zachowanie  BSD  i  SYSV  różni  się,  powodując  nie  działanie  na Linuksie
       oprogramowania BSD, które ustawia akcję dla SIGCHLD na SIG_IGN.

       Użycie sighandler_t jest rozszerzeniem GNU.  Różne wersje  libc  predefiniują  ten  typ;  libc4  i  libc5
       definiują   SignalHandler,   glibc   definiuje  sig_t,  a  gdy  zdefiniowane  jest  _GNU_SOURCE,  również
       sighandler_t.

ZGODNE Z

       ANSI C

ZOBACZ TAKŻE

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

INFORMACJE O TŁUMACZENIU

       Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne.
       W  razie  zauważenia  różnic  między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub
       funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:

              man --locale=C 2 signal

       Prosimy  o  pomoc  w  aktualizacji  stron  man  -   więcej   informacji   można   znaleźć   pod   adresem
       http://sourceforge.net/projects/manpages-pl/.

Linux 2.2                                          2000-04-28                                          SIGNAL(2)