EN JA
EXIT(2)
EXIT(2) FreeBSD System Calls Manual EXIT(2)

名称

_exit呼び出しているプロセスを終了する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < unistd.h>

void
_exit( int status);

解説

_exit() システムコールはプロセスを終了させ、以降のような結果をもたらします:
  • 呼び出し元プロセス内のオープンされたすべての記述子はクローズされます。これには遅延が伴うことがあります。たとえば、出力がすべて出されてしまうのを待機することです。この状態のプロセスは既に死にかけているので、新たに kill はできません。
  • 呼び出し元プロセスの親プロセスに、未解決の wait(2) 呼び出しがある場合または SIGCHLD シグナルを捕捉した場合、呼び出し元プロセスの終了が親プロセスに通知され、 wait(2) で定義されたように status が設定されます。
  • 呼び出し元プロセスに子プロセスが存在するなら、それらすべての子プロセスの親プロセス ID は 1 に設定されます。初期化プロセスは、これらの各プロセスを継承します ( init(8)intro(2)定義 セクションを参照)。
  • プロセスの終了によっていずれかのプロセスグループが親のない子になる場合 (通常はグループのメンバ全員に対する親が終了したため。 intro(2) の“親のないプロセスグループ (Orphaned Process Group)”を参照)、そして親のないグループのメンバのいずれかが停止されている場合、その新たな親のないプロセスグループのすべてのメンバに SIGHUP シグナルと SIGCONT シグナルが送信されます。
  • プロセスが制御プロセスの場合 ( intro(2) を参照)、 SIGHUP シグナルが制御端末のフォアグラウンドプロセスグループに送信され、制御端末への現在のすべてのアクセスが無効にされます。

ほとんどの C プログラムはライブラリルーチン exit(3) を呼び出します。これはバッファをフラッシュし、ストリームをクローズし、一時ファイルをアンリンクするなどした後に _exit() を呼び出します。

戻り値

_exit() システムコールは、決して返りません。

規格

_exit() システムコールは、 IEEE Std 1003.1-1990 (“POSIX.1”) に適合するはずです。

歴史

_exit() 関数は、 Version 7 AT&T UNIX で登場しました。
June 4, 1993 FreeBSD