名 前
on_exit − プ ロ セ ス が 正 常 に 終 了 し た 際 に 呼 ば れ る 関 数 を 登 録 す る
書 式
#include <stdlib.h>
int on_exit(void (*function)(int , void *), void *arg);
glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):
on_exit(): _BSD_SOURCE || _SVID_SOURCE
説 明
on_exit() 関 数 は 、 指 定 さ れ た 関 数 function を 、 プ ロ セ ス が 正 常 に 終 了 し た 際 に 呼 ば れ る 関 数 と し て 登 録 す る 。 正 常 な 終 了 と は 、 exit(3) ま た は プ ロ グ ラ ム の main() 関 数 の 中 の return 命 令 に よ る 終 了 で あ る 。 関 数 function に は 、 直 近 の exit(3) の 呼 び 出 し で 渡 さ れ た status 引 数 と on_exit() の arg 引 数 が 渡 さ れ る 。 同 じ 関 数 を 複 数 回 登 録 し て も よ い 。 登 録 さ れ た 関 数 は 登 録 1 回 に つ き 1 回 呼 び 出 さ れ る 。
fork(2) で 作 成 さ れ た 場 合 、 子 プ ロ セ ス は 親 プ ロ セ ス の 登 録 の コ ピ ー を 継 承 す る 。 exec(3) フ ァ ミ リ ー の 関 数 の 場 合 、 呼 び 出 し に 成 功 す る と 、 全 て の 登 録 が 削 除 さ れ る 。
返 り 値
on_exit() 関 数 は 、 成 功 し た ら 0 を 、 そ う で な け れ ば 0 以 外 を 返 す 。
準 拠
こ の 関 数 は SunOS 4 由 来 で あ る が 、 glibc に も 存 在 す る 。 Solaris (SunOS 5) に は も は や 存 在 し な い 。 移 植 性 が 必 要 な ア プ リ ケ ー シ ョ ン で は こ の 関 数 の 使 用 は 避 け 、 代 わ り に 標 準 の atexit(3) を 使 う こ と 。
関 連 項 目
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。