Provided by: manpages-zh_1.6.3.3-2_all bug

NAME

       exit - 使程序正常中止

SYNOPSIS 总览

       #include <stdlib.h>

       void exit(int status);

DESCRIPTION 描述

       函数  exit()  使得程序正常中止,status  &  0377 的值被返回给父进程 (参见 wait(2)) 。所有用
       atexit()on_exit()    注册的函数都以与注册时相反的顺序被依次执行。使用    tmpfile()
       创建的文件被删除。

       C       标准定义了两个值      EXIT_SUCCESSEXIT_FAILURE,可以作为      exit()
       的参数,来分别指示是否为成功退出。

RETURN VALUE 返回值

       函数 exit() 不会返回。

CONFORMING TO 标准参考

       SVID 3, POSIX, BSD 4.3, ISO 9899 (``ANSI C'')

NOTES 要点

       在        exit        处理过程中,可能会使用         atexit()on_exit()
       注册其他的函数。通常,最后注册的函数被从已注册函数链中摘下来,然后执行。如果在处理过程中,又调用了
       exit()longjmp(),那么发生的行为是未定义的。

       相对于使用 0 和非零值 1 或 -1,使用 EXIT_SUCCESS 和 EXIT_FAILURE  可以稍微增加一些可移植性
       (对非 Unix 环境)。特别的,VMS 使用一种不同的约定。

       BSD 试图标准化退出代码 - 参见文件 <sysexits.h>exit()                  之后,退出状态必须传递给父进程。这里有三种情况。如果父进程已设置了
       SA_NOCLDWAIT,或者已将                     SIGCHLD                      的处理句柄设置成了
       SIG_IGN,这个状态将被忽略。这时要退出的进程立即消亡。如果父进程没有表示它对退出状态不感兴趣,仅仅是不再等待,那么要退出的程序变成一个僵尸进程
       (``zombie'',除了包含一个字节的退出状态外,什么也不是)。这样在父进程后来调用        wait()
       函数族之一时,可以得到退出状态。

       如果所用实现支持           SIGCHLD          信号,信号将被发送到父进程。如果父进程已设置了
       SA_NOCLDWAIT,它被取消定义。(?)

       如果进程是一个                                                                     session
       leader,它的控制终端是会话的控制终端,那么这个终端的前台进程组的每个进程都将收到    SIGHUP
       信号;终端将与这个会话断开,可以再被一个新的控制进程获得。

       如果进程的退出使得一个进程组成为孤儿,并且这个新近成为孤儿的进程组中任何的进程被中止,进程组中所有的进程将依次收到
       SIGHUP 和 SIGCONT 信号。

SEE ALSO 参见

       _exit(2), wait(2), atexit(3), on_exit(3), tmpfile(3)

       本页面中文版由中文 man 手册页计划提供。
       中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh

                                            2001-11-17                                    EXIT(3)