mirror of https://github.com/mkerrisk/man-pages
_exit.2: Clarify the distinction between the raw syscall and the wrapper function
Further clarify the difference between the raw _exit() system call and the C library wrapper. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
parent
44803dd03b
commit
d99b5be0d8
21
man2/_exit.2
21
man2/_exit.2
|
@ -112,14 +112,14 @@ canceled upon
|
||||||
.BR _exit (),
|
.BR _exit (),
|
||||||
is implementation-dependent.
|
is implementation-dependent.
|
||||||
.SS C library/kernel differences
|
.SS C library/kernel differences
|
||||||
In glibc up to version 2.3, the
|
The text above in DESCRIPTION describes the traditional effect of
|
||||||
.BR _exit ()
|
.BR _exit (),
|
||||||
wrapper function invoked the kernel system call of the same name.
|
which is to terminate a process,
|
||||||
Since glibc 2.3, the wrapper function invokes
|
and these are the semantics specified by POSIIX.1 and implemented
|
||||||
.BR exit_group (2),
|
by the C library wrapper function.
|
||||||
in order to terminate all of the threads in a process.
|
On modern systems, this means termination of all threads in the process.
|
||||||
.PP
|
.PP
|
||||||
The raw
|
By contrast with the C library wrapper function, the raw Linux
|
||||||
.BR _exit ()
|
.BR _exit ()
|
||||||
system call terminates only the calling thread, and actions such as
|
system call terminates only the calling thread, and actions such as
|
||||||
reparenting child processes or sending
|
reparenting child processes or sending
|
||||||
|
@ -127,6 +127,13 @@ reparenting child processes or sending
|
||||||
to the parent process are performed only if this is
|
to the parent process are performed only if this is
|
||||||
the last thread in the thread group.
|
the last thread in the thread group.
|
||||||
.\" _exit() is used by pthread_exit() to terminate the calling thread
|
.\" _exit() is used by pthread_exit() to terminate the calling thread
|
||||||
|
.PP
|
||||||
|
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
|
.SH SEE ALSO
|
||||||
.BR execve (2),
|
.BR execve (2),
|
||||||
.BR exit_group (2),
|
.BR exit_group (2),
|
||||||
|
|
Loading…
Reference in New Issue