Provided by: manpages-zh_1.6.3.2-1_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)