Scroll to navigation

_EXIT(2) Podręcznik programisty Linuksa _EXIT(2)

NAZWA

_exit, _Exit - zakończenie bieżącego procesu

SKŁADNIA

#include <unistd.h>

void _exit(int status);

#include <stdlib.h>

void _Exit(int status);


Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

_Exit():

_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

OPIS

Funkcja _exit() "natychmiast" kończy proces, z którego została wywołana. Wszystkie przynależące do procesu otwarte deskryptory plików są zamykane; wszystkie jego procesy potomne są przejmowane przez proces 1, init, a jego proces macierzysty otrzymuje sygnał SIGCHLD.

Wartość status jest zwracana procesowi macierzystemu jako kod zakończenia procesu wywołującego tę funkcję i może zostać odczytana za pomocą jednej z funkcji z rodziny wait(2).

Funkcja _Exit() jest równoważna _exit().

WARTOŚĆ ZWRACANA

Funkcje te nigdy nie powracają.

ZGODNE Z

POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD. Funkcja _Exit() została wprowadzona przez C99.

UWAGI

Efekty zakończenia, transmisja kodu zakończenia, procesy zombie, przesyłanie sygnałów itp. zostały przedyskutowane w exit(3).

Funkcja _exit() jest podobna do exit(3), ale nie wywołuje żadnych funkcji zarejestrowanych za pomocą funkcji atexit(3) lub on_exit(3). Otwarte strumienie stdio(3) nie są opróżniane. Z drugiej strony, _exit nie zamyka otwartych deskryptorów plików, co może spowodować nieoczekiwane opóźnienia podczas oczekiwania na zakończenie odłożonych zapisów. Jeśli opóźnienia te są niepożądane, to może być przydatne wywołanie funkcji podobnych do tcflush(3) przed wywołaniem _exit(). To, czy jakiekolwiek odłożone we/wy zostanie anulowane i które z nich mogą zostać anulowane podczas _exit(), zależy od implementacji.

Różnice biblioteki C/jądra

W glibc do wersji 2.3, funkcja opakowująca _exit() przywołuje wywołanie systemowe o tej samej nazwie. Od glibc 2.3, funkcja opakowująca wywołuje exit_group(2), w celu zakończenia wszystkich wątków w procesie.

ZOBACZ TAKŻE

execve(2), exit_group(2), fork(2), kill(2), wait(2), wait4(2), waitpid(2), atexit(3), exit(3), on_exit(3), termios(3)

O STRONIE

Angielska wersja tej strony pochodzi z wydania 4.07 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 man są: Przemek Borys (PTM) <pborys@dione.ids.pl>, Andrzej M. Krzysztofowicz (PTM) <ankry@green.mf.pg.gda.pl> 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ą 4.07 oryginału.

2016-03-15 Linux