Man Linux: Main Page and Category List

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; 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, etc., 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.24 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/.