_EXIT - Linux手册页
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/。