EN JA
PTHREAD_ATTR(3)
PTHREAD_ATTR(3) FreeBSD Library Functions Manual PTHREAD_ATTR(3)

名称

pthread_attr_init, pthread_attr_destroy, pthread_attr_setstack, pthread_attr_getstack, pthread_attr_setstacksize, pthread_attr_getstacksize, pthread_attr_setguardsize, pthread_attr_getguardsize, pthread_attr_setstackaddr, pthread_attr_getstackaddr, pthread_attr_setdetachstate, pthread_attr_getdetachstate, pthread_attr_setinheritsched, pthread_attr_getinheritsched, pthread_attr_setschedparam, pthread_attr_getschedparam, pthread_attr_setschedpolicy, pthread_attr_getschedpolicy, pthread_attr_setscope, pthread_attr_getscopeスレッド属性操作

ライブラリ

POSIX Threads Library (libpthread, -lpthread)

書式

#include < pthread.h>

int
pthread_attr_init( pthread_attr_t *attr);

int
pthread_attr_destroy( pthread_attr_t *attr);

int
pthread_attr_setstack( pthread_attr_t *attr, void *stackaddr, size_t stacksize);

int
pthread_attr_getstack( const pthread_attr_t * restrict attr, void ** restrict stackaddr, size_t * restrict stacksize);

int
pthread_attr_setstacksize( pthread_attr_t *attr, size_t stacksize);

int
pthread_attr_getstacksize( const pthread_attr_t *attr, size_t *stacksize);

int
pthread_attr_setguardsize( pthread_attr_t *attr, size_t guardsize);

int
pthread_attr_getguardsize( const pthread_attr_t *attr, size_t *guardsize);

int
pthread_attr_setstackaddr( pthread_attr_t *attr, void *stackaddr);

int
pthread_attr_getstackaddr( const pthread_attr_t *attr, void **stackaddr);

int
pthread_attr_setdetachstate( pthread_attr_t *attr, int detachstate);

int
pthread_attr_getdetachstate( const pthread_attr_t *attr, int *detachstate);

int
pthread_attr_setinheritsched( pthread_attr_t *attr, int inheritsched);

int
pthread_attr_getinheritsched( const pthread_attr_t *attr, int *inheritsched);

int
pthread_attr_setschedparam( pthread_attr_t *attr, const struct sched_param *param);

int
pthread_attr_getschedparam( const pthread_attr_t *attr, struct sched_param *param);

int
pthread_attr_setschedpolicy( pthread_attr_t *attr, int policy);

int
pthread_attr_getschedpolicy( const pthread_attr_t *attr, int *policy);

int
pthread_attr_setscope( pthread_attr_t *attr, int contentionscope);

int
pthread_attr_getscope( const pthread_attr_t *attr, int *contentionscope);

解説

スレッド属性は、 pthread_create() のパラメータを指定するために使用されます。 1 つの属性オブジェクトは、呼び出しの間の修正と共に、あるいは修正なしで pthread_create() の多数の呼び出しで使用できます。

pthread_attr_init() 関数は、すべてのデフォルトスレッド属性で attr を初期化します。

pthread_attr_destroy() 関数は、 attr を破壊します。

pthread_attr_set*() 関数は、各関数名に相当する属性を設定します。

pthread_attr_get*() 関数は、2 番目の関数パラメータによって指される位置へ各関数名に相当する属性の値をコピーします。

戻り値

成功すれば、これらの関数は、0 を返します。そうでなければ、エラーを示すためにエラー番号を返します。

エラー

pthread_attr_init() 関数は、次の場合に失敗します:
[ ENOMEM]
メモリ不足。

pthread_attr_destroy() 関数は、次の場合に失敗します:

[ EINVAL]
attr は、無効の値。

pthread_attr_setstacksize() および pthread_attr_setstack() 関数は、次の場合に失敗します:

[ EINVAL]
stacksize は、 PTHREAD_STACK_MIN 未満です。

pthread_attr_setdetachstate() 関数は、次の場合に失敗します:

[ EINVAL]
detachstate は、無効の値。

pthread_attr_setinheritsched() 関数は、次の場合に失敗します:

[ EINVAL]
attr は、無効の値。

pthread_attr_setschedparam() 関数は、次の場合に失敗します:

[ EINVAL]
attr は、無効の値。
[ ENOTSUP]
param は、無効の値。

pthread_attr_setschedpolicy() 関数は、次の場合に失敗します:

[ EINVAL]
attr は、無効の値。
[ ENOTSUP]
policy は、無効かサポートされない値。

pthread_attr_setscope() 関数は、次の場合に失敗します:

[ EINVAL]
attr は、無効の値。
[ ENOTSUP]
contentionscope は、無効かサポートされない値。

規格

pthread_attr_init(), pthread_attr_destroy(), pthread_attr_setstacksize(), pthread_attr_getstacksize(), pthread_attr_setstackaddr(), pthread_attr_getstackaddr(), pthread_attr_setdetachstate(), pthread_attr_getdetachstate() 関数は、 ISO/IEC 9945-1:1996 (“POSIX.1”) に適合しています。

pthread_attr_setinheritsched(), pthread_attr_getinheritsched(), pthread_attr_setschedparam(), pthread_attr_getschedparam(), pthread_attr_setschedpolicy(), pthread_attr_getschedpolicy(), pthread_attr_setscope(), pthread_attr_getscope() 関数は、 Version 2 of the Single UNIX Specification (“SUSv2”) に適合しています。

January 8, 2010 FreeBSD