Provided by: manpages-pl-dev_4.23.1-1_all bug

_exit(2)                                       System Calls Manual                                      _exit(2)

NAZWA

       _exit, _Exit - kończy bieżący proces

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <unistd.h>

       [[noreturn]] void _exit(int status);

       #include <stdlib.h>

       [[noreturn]] 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  init
       (lub   przez   najbliższy   proces   dorzynający   (subreaper),   zgodnie  z  definicją  użycia  operacji
       PR_SET_CHILD_SUBREAPER prctl(2)). Jego proces macierzysty otrzymuje sygnał SIGCHLD.

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

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

WARTOŚĆ ZWRACANA

       Funkcje te nigdy nie powracają.

STANDARDY

       _exit()
              POSIX.1-2008.

       _Exit()
              C11, POSIX.1-2008.

HISTORIA

       POSIX.1-2001, SVr4, 4.3BSD.

       _Exit() wprowadzono w 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 wejścia/wyjścia
       zostaną anulowane i które z nich mogą zostać anulowane podczas _exit(), zależy od implementacji.

   Różnice biblioteki C/jądra
       Powyższy tekst w OPISIE dotyczy tradycyjnych  skutków  _exit(),  obejmujących  zakończenie  procesu  oraz
       semantykę  określoną  przez  POSIX.1  i  zaimplementowaną  przez  opakowującą  funkcję biblioteczną C. We
       współczesnych systemach, oznacza to zakończenie wszelkich wątków procesu.

       W odróżnieniu od opakowującej funkcji bibliotecznej  C,  surowe  linuksowe  wywołanie  systemowe  _exit()
       kończy  jedynie wywołujący wątek, a działania obejmujące przypisanie nowego rodzica procesom potomnym lub
       wysłanie SIGCHLD do procesów macierzystych są wykonywane wyłącznie w sytuacji, gdy jest to ostatni  wątek
       z danej grupy wątków.

       Do  glic  2.3,  funkcja opakowująca _exit() przywoływała 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)

TŁUMACZENIE

       Autorami  polskiego  tłumaczenia  niniejszej  strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>,
       Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> i Michał Kułach <michal.kulach@gmail.com>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje  o  warunkach  licencji  można  uzyskać
       zapoznając   się   z   GNU General Public License w wersji 3   lub  nowszej.  Nie  przyjmuje  się  ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej  manpages-pl-
       list@lists.sourceforge.net.

Linux man-pages 6.8                              2 maja 2024 r.                                         _exit(2)