Provided by: manpages-ja-dev_0.5.0.0.20210215+dfsg-1_all
名前
_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/ に書かれている。