Provided by: manpages-dev_3.54-1ubuntu1_all bug

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():
           _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;
           or cc -std=c99

DESCRIPTION

       The  function  _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, init, and the process's parent is sent a SIGCHLD signal.

       The  value  status 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

       SVr4, POSIX.1-2001, 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).  Whether it flushes standard I/O buffers  and  removes  temporary
       files  created  with  tmpfile(3)  is implementation-dependent.  On the other hand, _exit()
       does close open file descriptors, and this may cause an unknown delay, waiting for pending
       output  to  finish.   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 implementation-dependent.

       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), waitpid(2), atexit(3),
       exit(3), on_exit(3), termios(3)

COLOPHON

       This page is part of release 3.54 of the Linux man-pages project.  A  description  of  the
       project,     and    information    about    reporting    bugs,    can    be    found    at
       http://www.kernel.org/doc/man-pages/.