_EXIT - Linux手册页

时间:2019-08-20 17:58:39  来源:igfitidea点击:

Linux程序员手册 第2部分
更新日期: 2020-02-09

名称

_exit,_Exit-终止调用过程

语法

#包括

void _exit(int status);

#包括

void _Exit(int status);

glibc的功能测试宏要求(请参阅feature_test_macros(7)):

_出口():

_ISOC99_SOURCE || _POSIX_C_SOURCE>= 200112L

说明

_exit()立即终止调用过程。属于该进程的所有打开文件描述符都将关闭。进程的任何子级都由init(1)继承(或由使用prctl(2)PR_SET_CHILD_SUBREAPER操作定义的最近的" subreaper"进程继承)。向该进程的父进程发送SIGCHLD信号。

状态值&0xFF作为进程的退出状态返回到父进程,并且可以使用wait(2)系列调用之一由父进程收集。

函数_Exit()等效于_Exit()。

返回值

这些函数不返回。

遵循规范

POSIX.1-2001,POSIX.1-2008,SVr4、4.3BSD。函数_Exit()由C99引入。

备注

有关退出的影响,退出状态的传输,僵尸进程,发送的信号等的讨论,请参见exit(3)。

函数_exit()类似于exit(3),但不会调用在atexit(3)或on_exit(3)中注册的任何函数。打开的stdio(3)流不会刷新。另一方面,_exit()确实关闭打开的文件描述符,这可能会导致未知的延迟,以等待挂起的输出完成。如果不希望有延迟,则在调用_exit()之前调用tcflush(3)之类的函数可能会很有用。是否取消任何挂起的I / O,以及在_exit()时可以取消哪个挂起的I / O,取决于实现。

C library/kernel differences

在2.3版之前的glibc中,_exit()包装函数调用了同名的内核系统调用。从glibc 2.3开始,包装器函数调用exit_group(2),以终止进程中的所有线程。 (原始_exit()系统调用仅终止调用线程。)

另外参见

execve(2),exit_group(2),fork(2),kill(2),wait(2),wait4(2),waitpid(2),atexit(3),exit(3),on_exit(3), termios(3)

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/