EN JA
PTHREAD_ATFORK(3)
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]
フォークハンドラのアドレスを記録するための十分なテーブル空間が存在しない。

関連項目

fork(2), pthread(3)

規格

pthread_atfork() 関数は、 IEEE Std 1003.1 (“POSIX.1”) に適合するはずです。

作者

このマニュアルページは、 Alex Vasylenko <lxv@omut.org>によって書かれました。
June 21, 2004 FreeBSD