Man page - exit(3)

Packages contains this manual

Available languages:

en fr it pl ja ru ro zh_TW zh_CN de

Manual

EXIT

NAME
SYNOPSIS 總 覽
DESCRIPTION 描 述
RETURN VALUE 返 回 值
CONFORMING TO 標 準 參 考
NOTES 要 點
SEE ALSO 參 見


NAME

exit - 使 程 式 正 常 中 止

SYNOPSIS 總 覽

#include <stdlib.h>

void exit(int status );

DESCRIPTION 描 述

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

C 標 準 定 義 了 兩 個 值 EXIT_SUCCESS EXIT_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