_EXIT

Section: Linux Programmer's Manual (2)
Updated: 2007-07-26
Index JM Home Page roff page
 

名前

_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; または 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 がキャンセルされるのかは実装に依存する。  

関連項目

execve(2), exit_group(2), fork(2), kill(2), wait(2), wait4(2), waitpid(2), atexit(3), exit(3), on_exit(3), termios(3)


 

Index

名前
書式
説明
返り値
準拠
注意
関連項目

This document was created by man2html, using the manual pages.
Time: 04:31:30 GMT, November 19, 2007