_exit()函数使用说明

来源:互联网 发布:疯狂美工助手打不开 编辑:程序博客网 时间:2024/06/05 10:16
摘要:本文描述的是Linux手册页中_exit()函数的使用说明,使用_exit()函数终止进程.原文来自:http://www.kernel.org/doc/man-pages/.
NAME
    _exit(),_Exit() - 终止进程.
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 || _POSIX_C_SOURCE >= 200112L;
           or cc -std=c99
DESCRIPTION
    调用_exit()函数会立即终止进程,属于该进程的所有打开的文件描述符都会关闭,进程的子进程会归属到init进程,成为init的子进程,并向其父进程发送SIGCHLD信号.
    终止状态status传递返回给父进程,根据子进程的终止状态,父进程可以调用wait()函数处理该子进程.
    函数_Exit()等价于函数_exit().
RETURN VALUE
   _exit()和_Exit()函数没有返回值.
CONFORMING TO
   SVr4, POSIX.1-2001, 4.3BSD.  The function _Exit() was introduced by C99.
NOTES
    讨论终止进程的作用,终止状态的传递,僵死进程,信号发送等等,详细请查看exit()函数.
    函数_exit()类似于exit(),但_exit()函数不会调用由atexit()和on_exit()函数注册的终止处理程序.它是否清理IO缓冲区和删除临时文件是依实作(情况)而定的.在另一方面,调用_exit()函数时,关闭文件描述符可能会导致一个未知的延时,并等待输出完成.如果不希望出现延时,可以在调用_exit()函数之前先调用tcflush()函数,进程是否取消等待IO是依实作(情况)而定的.
    在glibc 2.3版本前,库函数_exit()与内核系统调用同名,从glibc 2.3版本后,库函数调用exit_group()来终止进程中的所有线程.
END

笔者:个人能力有限,只是学习参考...读者若发现文中错误,敬请提出.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------勿在浮沙筑高台,静下心来,慢慢地沉淀---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1 0
原创粉丝点击