Manpages

名 前

_exit, _Exit − 呼 び 出 し 元 の プ ロ セ ス を 終 了 さ せ る

書 式

#include <unistd.h>

void _exit(int status);

#include <stdlib.h>

void _Exit(int status);

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):

_Exit():

_XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L; ま た は cc −std=c99

説 明

_exit() は 、 そ れ を 呼 ん だ プ ロ セ ス を 「 直 ち に 」 終 了 さ せ る 。 そ の 際 、 こ の プ ロ セ ス が 所 有 し て い る デ ィ ス ク リ プ タ ー (descriptor) で 、 オ ー プ ン さ れ て い る も の は 全 て ク ロ ー ズ さ れ る 。 ま た 、 こ の プ ロ セ ス が 所 有 す る 子 プ ロ セ ス は 全 て 、 プ ロ セ ス 番 号 1、 つ ま り init プ ロ セ ス に よ っ て 継 承 さ れ 、 こ の プ ロ セ ス の 親 プ ロ セ ス に 対 し て SIGCHLD シ グ ナ ル が 送 出 さ れ る 。

status の 値 は 、 こ の プ ロ セ ス の 終 了 状 態 と し て そ の 親 プ ロ セ ス に 対 し て 返 さ れ 、 wait(2) 系 関 数 を 利 用 す る こ と に よ っ て 取 得 す る こ と が で き る 。 関 数 _Exit() は _exit() と 等 価 で あ る 。

返 り 値

こ れ ら の 関 数 は 値 を 返 さ な い 。

準 拠

SVr4, POSIX.1−2001, 4.3BSD. 関 数 _Exit() は C99 で 導 入 さ れ た 。

注 意

exit の 効 果 、 終 了 状 態 の 受 渡 し 、 ゾ ン ビ プ ロ セ ス 、 シ グ ナ ル 送 出 な ど に つ い て の 議 論 は 、 exit(3) を 参 照 す る こ と 。 関 数 _exit() は exit(3) に 似 て い る が 、 ANSI C の atexit(3)on_exit(3) に よ っ て 登 録 さ れ た い か な る 関 数 も 呼 び 出 さ な い 。 標 準 I/O バ ッ フ ァ ー の フ ラ ッ シ ュ や 、 tmpfile(3) で 作 成 さ れ た テ ン ポ ラ リ フ ァ イ ル の 削 除 を 行 う か ど う か は 、 実 装 に 依 存 す る 。 一 方 で 、 _exit() は オ ー プ ン さ れ て い る フ ァ イ ル デ ィ ス ク リ プ タ ー を ク ロ ー ズ し な い た め 、 未 決 定 に な っ て い る 出 力 が フ ラ ッ シ ュ さ れ る の を 待 つ の に 不 確 定 な 遅 れ が 発 生 す る 。 こ の 遅 れ を 発 生 さ せ た く な け れ ば 、 _exit() の 前 に tcflush(3) の よ う な 関 数 を 呼 び 出 せ ば よ い 。 _exit() が 呼 び 出 さ れ た と き に 、 未 決 定 に な っ て い る 全 て の I/O が キ ャ ン セ ル さ れ る の か 、 ま た ど の I/O が キ ャ ン セ ル さ れ る の か は 実 装 に 依 存 す る 。

C ラ イ ブ ラ リ と カ ー ネ ル ABI の 違 い バ ー ジ ョ ン 2.3 よ り 前 の glibc で は 、 _exit() の ラ ッ パ ー 関 数 は 同 じ 名 前 の カ ー ネ ル シ ス テ ム コ ー ル を 起 動 し て い た 。 glibc 2.3 以 降 で は 、 プ ロ セ ス 内 の 全 て の ス レ ッ ド を 終 了 す る た め に 、 ラ ッ パ ー 関 数 は exit_group(2) を 起 動 す る 。

関 連 項 目

execve(2), exit_group(2), fork(2), kill(2), wait(2), wait4(2), waitpid(2), atexit(3), exit(3), on_exit(3), termios(3)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。