_EXIT
Section: Linux Programmer's Manual (2)
Updated: 2007-07-26
Index
JM Home Page
roff page
名前
_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; または
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 がキャンセルされるのかは実装に依存する。
関連項目
execve(2),
exit_group(2),
fork(2),
kill(2),
wait(2),
wait4(2),
waitpid(2),
atexit(3),
exit(3),
on_exit(3),
termios(3)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- 準拠
-
- 注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:30 GMT, November 19, 2007