_exit - システムコールの説明 - Linux コマンド集 一覧表
名前
_exit, _Exit - 現在のプロセスを終了させる
書式
#include <unistd.h>
void _exit(int
status
);
#include <stdlib.h>
void _Exit(int
status
);
説明
_exit ()は、それを呼んだプロセスを「直ちに」終了させる。 その際、このプロセスが所有しているディスクリプタ (descriptor) で、 オープンされているものは全てクローズされる。 また、このプロセスが所有する子プロセスは全て、プロセス番号 1、 つまり init プロセスによって継承され、このプロセスの親プロセスに対して SIGCHLD シグナルが送出される。
status の値は、このプロセスの終了状態としてその親プロセスに対して返され、 wait ()系関数を利用することによって取得することができる。
関数 _Exit ()は _exit ()と等価である。
返り値
これらの関数は値を返さない。
準拠
SVr4, POSIX.1-2001, 4.3BSD. 関数 _Exit () は C99 で導入された。
注意
exit の役割・終了状態の受渡し・ ゾンビプロセス・シグナル送出などについての議論は、 exit (3) を参照すること。
関数 _exit ()は exit () に似ているが、ANSI C の atexit ()や on_exit ()によって登録されたいかなる関数も呼び出さない。 標準 I/O バッファのフラッシュや、 tmpfile (3) で作成されたテンポラリファイルの削除を行うかどうかは、実装に依存する。 一方で、 _exit ()はオープンされているファイルディスクリプタをクローズしないため、 未決定になっている出力がフラッシュされるのを待つのに不確定な遅れが発生する。 この遅れを発生させたくなければ、 _exit () の前に tcflush () のような関数を呼び出せばよい。 _exit () が呼び出されたときに、 未決定になっている全ての I/O がキャンセルされるのか、 またどの I/O がキャンセルされるのかは実装に依存する。