Rechercher une page de manuel
exit
Langue: pl
Version: 2001-11-17 (openSuse - 09/10/07)
Section: 3 (Bibliothèques de fonctions)
NAZWA
exit - normalne zakoñczenie programuSK£ADNIA
#include <stdlib.h> void exit(int status);
OPIS
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)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre