PTHREAD_CREATE(3) FreeBSD ライブラリ関数マニュアル PTHREAD_CREATE(3)
名称
pthread_create − 新しいスレッドの作成 |
ライブラリ
Reentrant C Library (libc_r, −pthread) |
書式
#include <pthread.h> int |
pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg); |
解説 |
pthread_create() 関数は、プロセス内に attr によって指定された属性をもつ新 しいスレッドを作成するために使用されます。 attr が NULL である場合には、 デフォルトの属性が使用されます。 attr によって指定された属性が後から更新 された場合には、スレッドの属性は変化しません。問題なく完了すると、 pthread_create() は thread によって指定された場所に作成されたスレッドの ID を格納します。 スレッドは、 arg を唯一の引数として start_routine を実行することで作成さ れます。 start_routine が戻った場合には、 start_routine の戻り値を終了ス テータスとして使用し、暗黙のうちに pthread_exit() を呼び出したような効果 があります。 main() を最初に実行したスレッドは、これとは異なることに注意 してください。そのスレッドが main() から戻った時には、 main() の戻り値を 終了ステータスとして使用し、暗黙のうちに exit() を呼び出したような効果が あります。 新しいスレッドのシグナルの状態は、以下のように初期化されます。 |
• シグナルマスクは作成しているスレッドから継承されます。
• 新しいスレッド用に保留しているシグナルのセットは空です。 戻り値 |
問題がない場合は、 pthread_create() 関数は 0 を返します。問題がある場合 は、そのエラーを示すためにエラー番号が返されます。 |
エラー
pthread_create() は以下の場合に失敗します。 |
[EAGAIN]
別のスレッドを作成するために必要なリソースがシステムに 不足しています。または、1 つのプロセス内の総スレッド数 についてのシステムの制限 [PTHREAD_THREADS_MAX] を超過 しました。 [EINVAL] 関連項目 |
fork(2), pthread_cleanup_pop(3), pthread_cleanup_push(3), pthread_exit(3), pthread_join(3) |
規格
pthread_create() は ISO/IEC 9945-1:1996 (‘‘POSIX.1’’) に適合しています。 FreeBSD 10.0 April 4, 1996 FreeBSD 10.0 |