Provided by: manpages-zh_1.5.1-1_all bug

NAME

       exit - 使程式正常中止

SYNOPSIS`覽
       #include <stdlib.h>

       void exit(int status);

DESCRIPTIONyz
       函數  exit()  使得程式正常中止,status  &  0377 的Q返回給父進程 (參見
       wait(2))         。所有用         atexit()on_exit()
       注冊的函數都以與注冊時相反的順序被依次執行。使用              tmpfile()
       創建的檔案被刪除。

       C  標準定義了兩蚧   EXIT_SUCCESSEXIT_FAILURE,可以作為   exit()
       的參數,來分別指示是否為成弘h出。

RETURN VALUE^
       函數 exit() 不會返回。

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

NOTES natexit()on_exit()
       注冊其他的函數。通常,最後注冊的函數被從已注冊函數鏈中摘下來,然後執行。如果在處理過程中,又調用了
       exit()longjmp(),那麼發生的行為是未定義的。

       相對於使用  0  和非零  1  或  -1,使用  EXIT_SUCCESS  和  EXIT_FAILURE
       可以稍微增加一些可移植性      (對非       Unix       環境)。特別的,VMS
       使用一種不同的約定。

       BSD 試圖標準化退出代碼 - 參見檔案 <sysexits.h>exit()
       之後,退出狀態必須傳遞給父進程。這裏有三種情況。如果父進程已設置了
       SA_NOCLDWAIT,或者已將    SIGCHLD    的處理句柄設置成了    SIG_IGN,這-
       茠牯A將被忽略。這時-
       n退出的進程立即消亡。如果父進程沒有表示它對退出狀態不感興趣,僅僅是不再等待,那麼-
       n退出的程式變成一蚖曮芘i程                     (``zombie'',除了包含一-
       茼r節的退出狀態外,什麼也不是)。這樣在父進程後來調用             wait()
       函數族之一時,可以得到退出狀態。

       如果所用實現支持 SIGCHLD 信號,信號將被發送到父進程。如果父進程已設置了
       SA_NOCLDWAIT,它被取消定義。(?)

       如果進程是一   session   leader,它的控制終端是會話的控制終端,那麼這-
       茞袟搌澈e台進程組的每荈i程都將收到       SIGHUP       信號;終端將與這-
       虓|話斷開,可以再被一虓s的控制進程獲得。

       如果進程的退出使得一荈i程組成為孤兒,並且這-
       虓s近成為孤兒的進程組中任何的進程被中止,進程組中所有的進程將依次收到
       SIGHUP 和 SIGCONT 信號。

SEE ALSO見
       _exit(2), wait(2), atexit(3), on_exit(3), tmpfile(3)

                                  2001-11-17                           EXIT(3)