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

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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.