Provided by: manpages-pl-dev_4.13-4_all bug

NAZWA

       exit - powoduje normalne zakończenie programu

SKŁADNIA

       #include <stdlib.h>

       void exit(int status);

OPIS

       The  exit()   function causes normal process termination and the least significant byte of
       status (i.e., status & 0xFF) is returned to the parent (see wait(2)).

       Wszystkie funkcje zarejestrowane przez  atexit(3) i on_exit(3) są wywoływane w  kolejności
       odwrotnej  do  kolejności  ich rejestracji. (Możliwe jest, aby którakolwiek z tych funkcji
       użyła  atexit(3) lub on_exit(3), aby zarejestrować dodatkowe  funkcje  wykonywane  podczas
       kończenia   działania  procesu;  nowe  funkcje  są  dodawane  na  początek  listy  funkcji
       przeznaczonych do wywołania). Jeśli jedna z tych  funkcji  nie  powróci  (to  jest  wywoła
       _exit(2)  lub  się  zabije  za  pomocą sygnału), to żadna z pozostałych funkcji nie będzie
       wywołana i dalsze przetwarzanie (w  szczególności  opróżnianie  strumieni  stdio(3))  jest
       przerywane.  Jeśli  ta  sama  funkcja  zostanie   zarejestrowana  za  pomocą atexit(3) lub
       on_exit(3) więcej niż raz, to będzie wywołana tyle razy, ile razy była zarejestrowana.

       Wszystkie otwarte strumienie stdio(3) są opróżniane  i  zamykane.  Pliki  utworzone  przez
       tmpfile(3) są usuwane.

       Standard  C  wymienia  dwie  definicje  EXIT_SUCCESS  i  EXIT_FAILURE,  które  mogą zostać
       przekazane do exit(), aby wskazać, odpowiednio, czy zakończenie  było  pomyślne,  czy  też
       nie.

WARTOŚĆ ZWRACANA

       Funkcja exit() nie powraca.

ATRYBUTY

       Informacje   o   pojęciach   używanych   w  tym  rozdziale  można  znaleźć  w  podręczniku
       attributes(7).

       ┌──────────┬────────────────────────┬─────────────────────┐
       │InterfejsAtrybutWartość             │
       ├──────────┼────────────────────────┼─────────────────────┤
       │exit()    │ Bezpieczeństwo wątkowe │ MT-Unsafe race:exit │
       └──────────┴────────────────────────┴─────────────────────┘
       Funkcja exit() używa niezabezpieczonej zmiennej globalnej,  w  związku  z  czym  nie  jest
       wątkowo bezpieczna.

ZGODNE Z

       POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.

UWAGI

       Nie  jest  zdefiniowane zachowanie, gdy jedna z funkcji zarejestrowanych przez atexit(3) i
       on_exit(3) wywoła exit() lub longjmp(3). Proszę zauważyć,  że  wywołanie  execve(2)  usuwa
       rejestracje utworzone przez atexit(3) i on_exit(3).

       Używanie EXIT_SUCCESS i EXIT_FAILURE zamiast 0 i pewnej wartości niezerowej, jak 1 lub -1,
       zapewnia nieco lepszą przenośność (do środowisk nieuniksowych). W szczególności VMS  używa
       innej konwencji.

       BSD  has  attempted  to  standardize  exit codes (which some C libraries such as the GNU C
       library have also adopted); see the file <sysexits.h>.

       After exit(), the exit status must be transmitted to the parent process.  There are  three
       cases:

       •  If  the  parent  has  set  SA_NOCLDWAIT, or has set the SIGCHLD handler to SIG_IGN, the
          status is discarded and the child dies immediately.

       •  If the parent was waiting on the child, it is notified of the exit status and the child
          dies immediately.

       •  Otherwise,  the  child  becomes  a  "zombie" process: most of the process resources are
          recycled,  but  a  slot  containing  minimal  information  about  the   child   process
          (termination  status,  resource  usage  statistics) is retained in process table.  This
          allows the parent to subsequently use waitpid(2) (or similar) to learn the  termination
          status of the child; at that point the zombie process slot is released.

       Jeśli   implementacja   wspiera   sygnał  SIGCHLD,  to  zostanie  on  wysłany  do  procesu
       macierzystego. Jeśli proces macierzysty ustawił SA_NOCLDWAIT, to  nie  jest  zdefiniowane,
       czy sygnał SIGCHLD zostanie wysłany.

   Signals sent to other processes
       Jeśli  proces  wychodzący  jest inicjatorem sesji a sterujący nim terminal jest terminalem
       sterującym  dla  sesji,  to  do  każdego  z  procesów   należących   do   grupy   procesów
       pierwszoplanowych  tego  terminala sterującego, zostanie wysłany sygnał SIGHUP, a terminal
       zostanie odłączony od sesji umożliwiając jego przejęcie przez nowy proces sterujący.

       Jeśli zakończenie procesu powoduje osierocenie grupy procesów, a którykolwiek  z  członków
       nowo  osieroconej  grupy  procesów  jest  zatrzymany,  to  po  sygnale SIGHUP do każdego z
       procesów tej grupy procesów  zostanie  wysłany  sygnał  SIGCONT.  Opis  osieroconych  grup
       procesów można znaleźć w podręczniku setpgid(2).

       Except  in  the  above  cases,  where  the  signalled  processes  may  be  children of the
       terminating process, termination of a process does not in general cause  a  signal  to  be
       sent   to   children   of   that  process.   However,  a  process  can  use  the  prctl(2)
       PR_SET_PDEATHSIG operation to arrange that it receives a signal if its parent terminates.

ZOBACZ TAKŻE

       _exit(2), get_robust_list(2), setpgid(2), wait(2), atexit(3), on_exit(3), tmpfile(3)

O STRONIE

       Angielska wersja tej strony  pochodzi  z  wydania  5.10  projektu  Linux  man-pages.  Opis
       projektu,  informacje  dotyczące  zgłaszania  błędów oraz najnowszą wersję oryginału można
       znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

T◈UMACZENIE

       Autorami  polskiego  tłumaczenia   niniejszej   strony   podręcznika   są:   Adam   Byrtek
       <alpha@irc.pl>,   Andrzej   Krzysztofowicz   <ankry@green.mf.pg.gda.pl>,   Robert  Luberda
       <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe  informacje  o  warunkach  licencji
       można   uzyskać   zapoznając   się   z   GNU   General   Public   License   w   wersji   3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  lub  nowszej.  Nie   przyjmuje   się   ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy  w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres listy dyskusyjnej
       ⟨manpages-pl-list@lists.sourceforge.net⟩.