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