1_EXIT(2)                   Linux Programmer's Manual                  _EXIT(2)
2
3
4

NAME

6       _exit, _Exit - terminate the calling process
7

SYNOPSIS

9       #include <unistd.h>
10
11       void _exit(int status);
12
13       #include <stdlib.h>
14
15       void _Exit(int status);
16
17   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
18
19       _Exit():
20           _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
21

DESCRIPTION

23       The function _exit() terminates the calling process "immediately".  Any
24       open file descriptors belonging to the process are closed.   Any  chil‐
25       dren  of  the process are inherited by init(1) (or by the nearest "sub‐
26       reaper"  process  as  defined  through  the   use   of   the   prctl(2)
27       PR_SET_CHILD_SUBREAPER  operation).   The  process's  parent  is sent a
28       SIGCHLD signal.
29
30       The value status & 0377 is  returned  to  the  parent  process  as  the
31       process's  exit  status,  and can be collected using one of the wait(2)
32       family of calls.
33
34       The function _Exit() is equivalent to _exit().
35

RETURN VALUE

37       These functions do not return.
38

CONFORMING TO

40       POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.   The  function  _Exit()  was
41       introduced by C99.
42

NOTES

44       For  a  discussion  on the effects of an exit, the transmission of exit
45       status, zombie processes, signals sent, and so on, see exit(3).
46
47       The function _exit() is like exit(3), but does not call  any  functions
48       registered with atexit(3) or on_exit(3).  Open stdio(3) streams are not
49       flushed.  On the other hand, _exit() does close open file  descriptors,
50       and this may cause an unknown delay, waiting for pending output to fin‐
51       ish.  If the delay is undesired, it may be  useful  to  call  functions
52       like  tcflush(3)  before  calling  _exit().  Whether any pending I/O is
53       canceled, and which pending I/O may be canceled upon _exit(), is imple‐
54       mentation-dependent.
55
56   C library/kernel differences
57       In  glibc  up  to version 2.3, the _exit() wrapper function invoked the
58       kernel system call of the same name.   Since  glibc  2.3,  the  wrapper
59       function  invokes  exit_group(2),  in  order  to  terminate  all of the
60       threads in a process.
61

SEE ALSO

63       execve(2), exit_group(2), fork(2), kill(2),  wait(2),  wait4(2),  wait‐
64       pid(2), atexit(3), exit(3), on_exit(3), termios(3)
65

COLOPHON

67       This  page  is  part of release 4.15 of the Linux man-pages project.  A
68       description of the project, information about reporting bugs,  and  the
69       latest     version     of     this    page,    can    be    found    at
70       https://www.kernel.org/doc/man-pages/.
71
72
73
74Linux                             2017-05-03                          _EXIT(2)
Impressum