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

NAZWA

       exit - powoduje normalne zakończenie programu

SKŁADNIA

       #include <stdlib.h>

       void exit(int status);

OPIS

       Funkcja  exit()  powoduje  normalne zakończenie procesu i zwrócenie procesowi-rodzicowi wartości status &
       0377 (patrz 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

   Wielowątkowość (patrz pthreads(7))
       Funkcja exit() używa niezabezpieczonej zmiennej globalnej, w związku z czym nie jest wątkowo bezpieczna.

ZGODNE Z

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

UWAGI

       Nie jest zdefiniowane, co się stanie, jeśli 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 próbował zestandaryzować kody zakończenia; patrz plik <sysexits.h>.

       Po wywołaniu exit() kod zakończenia musi zostać przekazany do  procesu  macierzystego.  Możliwe  są  trzy
       przypadki. Jeśli proces macierzysty ma ustawione SA_NOCLDWAIT lub ustawiony uchwyt SIGCHLD na SIG_IGN, to
       kod  ten  jest  ignorowany.  Jeśli  proces  macierzysty  czekał na potomny, jest on powiadamiany o kodzie
       powrotu. W  obu  przypadkach  kończący  się  proces  ginie  natychmiast.  Jeśli  proces  macierzysty  nie
       poinformował,  że nie jest zainteresowany kodem zakończenia ani nie czeka, kończący się proces przechodzi
       w proces "zombie" (który nie zawiera nic oprócz pojedynczego bajtu reprezentującego kod zakończenia) tak,
       że proces macierzysty może poznać kod powrotu poprzez późniejsze wywołanie jednej z funkcji wait(2).

       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.

       Jeśli proces 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).

ZOBACZ TAKŻE

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

O STRONIE

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

TŁUMACZENIE

       Autorami  polskiego   tłumaczenia   niniejszej   strony   podręcznika   man   są:   Adam   Byrtek   (PTM)
       <abyrtek@priv.onet.pl>,    Andrzej    Krzysztofowicz    (PTM)   <ankry@mif.pg.gda.pl>,   Robert   Luberda
       <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>.

       Polskie tłumaczenie jest częścią  projektu  manpages-pl;  uwagi,  pomoc,  zgłaszanie  błędów  na  stronie
       http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją  3.71 oryginału.

Linux                                              2014-03-25                                            EXIT(3)