.\" This manpage is Copyright (C) 1992 Drew Eckhardt;
-.\" 1993 Michael Haardt, Ian Jackson.
+.\" and Copyright (C) 1993 Michael Haardt, Ian Jackson.
.\"
.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
.\" Modified Wed Jul 21 23:02:38 1993 by Rik Faith <faith@cs.unc.edu>
.\" Modified 2001-11-17, aeb
.\"
-.TH _EXIT 2 2010-09-20 "Linux" "Linux Programmer's Manual"
+.TH _EXIT 2 2017-05-03 "Linux" "Linux Programmer's Manual"
.SH NAME
_exit, _Exit \- terminate the calling process
.SH SYNOPSIS
.B #include <unistd.h>
-.sp
+.PP
.BI "void _exit(int " status );
-.sp
+
.B #include <stdlib.h>
-.sp
+.PP
.BI "void _Exit(int " status );
-.sp
+.PP
.in -4n
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.in
-.sp
+.PP
.ad l
.BR _Exit ():
.RS 4
-_XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE ||
-_POSIX_C_SOURCE\ >=\ 200112L;
-.br
-or
-.I cc\ -std=c99
+_ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L
.RE
.ad
.SH DESCRIPTION
The function
.BR _exit ()
terminates the calling process "immediately".
-Any open file descriptors
-belonging to the process are closed; any children of the process are
-inherited by process 1,
-.IR init ,
-and the process's parent is sent a
+Any open file descriptors belonging to the process are closed.
+Any children of the process are inherited by
+.BR init (1)
+(or by the nearest "subreaper" process as defined through the use of the
+.BR prctl (2)
+.B PR_SET_CHILD_SUBREAPER
+operation).
+The process's parent is sent a
.B SIGCHLD
signal.
-.LP
+.PP
The value
-.I status
+.I "status & 0377"
is returned to the parent process as the process's exit status, and
can be collected using one of the
.BR wait (2)
family of calls.
-.LP
+.PP
The function
.BR _Exit ()
is equivalent to
.SH RETURN VALUE
These functions do not return.
.SH CONFORMING TO
-SVr4, POSIX.1-2001, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
The function
.BR _Exit ()
was introduced by C99.
For a discussion on the effects of an exit, the transmission of
exit status, zombie processes, signals sent, and so on, see
.BR exit (3).
-.LP
+.PP
The function
.BR _exit ()
is like
.BR atexit (3)
or
.BR on_exit (3).
-Whether it flushes
-standard I/O buffers and removes temporary files created with
-.BR tmpfile (3)
-is implementation-dependent.
+Open
+.BR stdio (3)
+streams are not flushed.
On the other hand,
.BR _exit ()
does close open file descriptors, and this may cause an unknown delay,
canceled upon
.BR _exit (),
is implementation-dependent.
-
+.SS C library/kernel differences
In glibc up to version 2.3, the
.BR _exit ()
wrapper function invoked the kernel system call of the same name.