スポンサーリンク

EXIT(2) FreeBSD システムコールマニュアル EXIT(2)

名称

_exit − 呼び出し元プロセスを終了する

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <unistd.h>

void

_exit(int status);

解説

_exit() システムコールはプロセスを終了させ、以降のような結果をもたらしま す:

 呼び出し元プロセス内のすべての記述子が閉じられます。これには遅延が伴うことがあります。たとえば、出力がすべて出されてしまうのを待機することです。この状態のプロセスは既に死にかけているので、新たに kill はできません。

呼び出し元プロセスの親プロセスに、未解決の wait(2) 呼び出しがある場合 または SIGCHLD シグナルを捕捉した場合、呼び出し元プロセスの終了が親プ ロセスに通知され、 wait(2) で定義されたように status が設定されます。

呼び出し元プロセスに子プロセスが存在するなら、それらすべての子プロセ スの親プロセス ID は 1 に設定されます。初期化プロセス (intro(2) の 定 義セクションを参照) が、これらの各プロセスを継承します。

プロセスの終了によっていずれかのプロセスグループが親のない子になる場 合 (通常はグループのメンバ全員に対する親が終了したため。 intro(2) の ‘‘親のないプロセスグループ (Orphaned Process Group)’’ を参照)、そして 親のないグループのメンバのいずれかが停止されている場合、その新たな親 のないプロセスグループのすべてのメンバに SIGHUP シグナルと SIGCONT シ グナルが送信されます。

プロセスが制御プロセスの場合 (intro(2) を参照)、 SIGHUP シグナルが制 御端末のフォアグラウンドプロセスグループに送信され、制御端末への現在 のすべてのアクセスが無効にされます。

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

戻り値

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

関連項目

fork(2), sigaction(2), wait(2), exit(3)

規格

_exit() システムコールは ISO/IEC 9945-1:1990 (‘‘POSIX.1’’) に適合していま す。

歴史

_exit() 関数は Version 7 AT&T UNIX で登場しました。

FreeBSD 10.0 June 4, 1993 FreeBSD 10.0

スポンサーリンク