スポンサーリンク

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]
attr
によって指定された値が、有効ではありません。

関連項目

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

スポンサーリンク