Provided by: manpages-ja-dev_0.5.0.0.20180315+dfsg-1_all bug

名前

       _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/ に書かれている。