Provided by: manpages-pl-dev_0.5-1_all 

NAZWA
exit - normalne zakończenie programu
SKŁADNIA
#include <stdlib.h>
void exit(int status);
OPIS
Uwaga! To tłumaczenie może być nieaktualne!
Funkcja exit() powoduje normalne zakończenie programu i zwraca do procesu macierzystego wartość status &
0377. (patrz wait(2)). Wszystkie funkcje zarejestrowane za pomocą atexit() oraz on_exit() są wykonywane
w kolejności odwrotnej niż zostały zarejestrowane, a wszystkie otwarte strumienie są zamykane i
wypróżniane są ich bufory. Pliki utworzone za pomocą tmpfile() 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 nie.
WARTOŚĆ ZWRACANA
Funkcja exit() nie powraca.
ZGODNE Z
SVID 3, POSIX, BSD 4.3, ISO 9899 (``ANSI C'')
NOTES
Za pomocą atexit() i on_exit() można zarejestrować dodatkowe funkcje, które zostaną wywołane podczas
zakończenia. Usuwana z szeregu, a następnie wywoływana, jest zawsze ostatnia funkcja. Nie jest
zdefiniowane, co się stanie, jeżeli podczas przetwarzania tych funkcji zostanie wywołane exit() lub
longjmp().
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 - obejrzyj 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().
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 starują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 peocesu powoduje osierocenie grupy procesów, a którykolwiek z członków nowoosieroconej
grupy procesów jest zatrzymany, to po sygnale SIGHUP do każdego z procesów tej grupy procesów zostanie
wysłany sygnał SIGCONT.
ZOBACZ TAKŻE
_exit(2), wait(2), atexit(3), on_exit(3), tmpfile(3)
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 3 exit
Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem
http://sourceforge.net/projects/manpages-pl/.
2001-11-17 EXIT(3)