PTHREAD_ATFORK(3) | FreeBSD Library Functions Manual | PTHREAD_ATFORK(3) |
名称
pthread_atfork — フォーク (fork) ハンドラを登録するライブラリ
POSIX Threads Library (libpthread, -lpthread)書式
#include < pthread.h> int
pthread_atfork( void (*prepare)(void), void (*parent)(void), void (*child)(void));
解説
pthread_atfork() 関数は、 fork(2) を呼び出すスレッドのコンテキストで、 fork(2) の前の後に呼び出されるフォークハンドラを宣言します。pthread_atfork() に登録されたハンドラは、以下に説明された瞬間に呼び出されます:
- prepare
- 親プロセスで fork(2) 処理が始まる前。 1 以上の prepare ハンドラが登録されたなら、それらが登録された反対の順序で呼び出されます。
- parent
- 親プロセスで fork(2) が完了した後。 1 以上の prepare ハンドラが登録されたなら、それらが登録された同じの順序で呼び出されます。
- child
- 子プロセスで fork(2) 処理が完了した後。 1 以上の child ハンドラが登録されたなら、それらが登録された同じの順序で呼び出されます。
これらの 3 つの点の 1 つ以上で操作が望まれていないなら、 NULL ポインタが対応するフォークハンドラとして渡されるかもしれません。
戻り値
成功すれば、 pthread_atfork() 関数は、0 を返します。そうでなければ、エラー番号が、エラーを示すために返されます。エラー
pthread_atfork() 関数は、次の場合に失敗します:- [ ENOMEM]
- フォークハンドラのアドレスを記録するための十分なテーブル空間が存在しない。
規格
pthread_atfork() 関数は、 IEEE Std 1003.1 (“POSIX.1”) に適合するはずです。作者
このマニュアルページは、 <lxv@omut.org>によって書かれました。June 21, 2004 | FreeBSD |