]> git.ipfire.org Git - thirdparty/man-pages.git/blobdiff - man2/_exit.2
proc.5: tfix
[thirdparty/man-pages.git] / man2 / _exit.2
index a47f04b1f683fd7d5aac64be838548b94510b248..c55d2a612c1ec73f498eefb4236d4f6f83df5b54 100644 (file)
@@ -1,8 +1,7 @@
-.\" Hey Emacs! This file is -*- nroff -*- source.
-.\"
 .\" 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
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\" Modified Wed Jul 21 23:02:38 1993 by Rik Faith <faith@cs.unc.edu>
 .\" Modified 2001-11-17, aeb
 .\"
-.TH _EXIT 2 2001-11-17 Linux "Linux Programmer's Manual"
+.TH _EXIT 2 2017-05-03 "Linux" "Linux Programmer's Manual"
 .SH NAME
-_exit, _Exit \- terminate the current process
+_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 );
+.PP
+.in -4n
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.in
+.PP
+.ad l
+.BR _Exit ():
+.RS 4
+_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
 .BR _exit ().
-.SH "RETURN VALUE"
+.SH RETURN VALUE
 These functions do not return.
-.SH "CONFORMING TO"
-SVr4, POSIX.1-2001, 4.3BSD.
-The function \fB_Exit\fP() was introduced by C99.
+.SH CONFORMING TO
+POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
+The function
+.BR _Exit ()
+was introduced by C99.
 .SH NOTES
 For a discussion on the effects of an exit, the transmission of
-exit status, zombie processes, signals sent, etc., see
+exit status, zombie processes, signals sent, and so on, see
 .BR exit (3).
-.LP
+.PP
 The function
 .BR _exit ()
-is like \fBexit\fP(3), but does not call any
+is like
+.BR exit (3),
+but does not call any
 functions registered with
 .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,
 waiting for pending output to finish.
 If the delay is undesired,
-it may be useful to call functions like 
+it may be useful to call functions like
 .BR tcflush (3)
-before calling \fB_exit\fP().
-Whether any pending I/O is cancelled, and which pending I/O may be
-cancelled upon \fB_exit\fP(), is implementation-dependent.
-.SH "SEE ALSO"
+before calling
+.BR _exit ().
+Whether any pending I/O is canceled, and which pending I/O may be
+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.
+Since glibc 2.3, the wrapper function invokes
+.BR exit_group (2),
+in order to terminate all of the threads in a process.
+.SH SEE ALSO
 .BR execve (2),
 .BR exit_group (2),
 .BR fork (2),