_EXIT(2) Linux Programmer's Manual _EXIT(2)
NAME
_exit, _Exit - terminate the calling process
SYNOPSIS
#include <unistd.h>
void _exit(int status);
#include <stdlib.h>
void _Exit(int status);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
_Exit():
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
DESCRIPTION
The function _exit() terminates the calling process "immediately". Any
open file descriptors belonging to the process are closed. Any chil-
dren of the process are inherited by init(1) (or by the nearest "sub-
reaper" process as defined through the use of the prctl(2)
PR_SET_CHILD_SUBREAPER operation). The process's parent is sent a
SIGCHLD signal.
The value status & 0377 is returned to the parent process as the
process's exit status, and can be collected using one of the wait(2)
family of calls.
The function _Exit() is equivalent to _exit().
RETURN VALUE
These functions do not return.
CONFORMING TO
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD. The function _Exit() was
introduced by C99.
NOTES
For a discussion on the effects of an exit, the transmission of exit
status, zombie processes, signals sent, and so on, see exit(3).
The function _exit() is like exit(3), but does not call any functions
registered with atexit(3) or on_exit(3). Open stdio(3) streams are not
flushed. On the other hand, _exit() does close open file descriptors,
and this may cause an unknown delay, waiting for pending output to fin-
ish. If the delay is undesired, it may be useful to call functions
like tcflush(3) before calling _exit(). Whether any pending I/O is
canceled, and which pending I/O may be canceled upon _exit(), is imple-
mentation-dependent.
C library/kernel differences
In glibc up to version 2.3, the _exit() wrapper function invoked the
kernel system call of the same name. Since glibc 2.3, the wrapper
function invokes exit_group(2), in order to terminate all of the
threads in a process.
SEE ALSO
execve(2), exit_group(2), fork(2), kill(2), wait(2), wait4(2), wait-
pid(2), atexit(3), exit(3), on_exit(3), termios(3)
COLOPHON
This page is part of release 4.15 of the Linux man-pages project. A
description of the project, information about reporting bugs, and the
latest version of this page, can be found at
https://www.kernel.org/doc/man-pages/.
Linux 2017-05-03 _EXIT(2)