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.