名称
pthread_condattr_getpshared(), pthread_condattr_setpshared() ― プロセス共有属性の取得と設定
構文
#include <pthread.h>
int pthread_condattr_getpshared(
const pthread_condattr_t *attr,
int *pshared
);
int pthread_condattr_setpshared(
pthread_condattr_t *attr,
int pshared
);
パラメータ
| attr | | プロセス共有 属性の設定または取得の対象である条件変数属性オブジェクトへのポインター。 |
| pshared | | このパラメータは、 プロセス共有 属性の新しい値を指定する (set 関数)、または attr の プロセス共有 属性の戻り先となるメモリー位置を指します (get 関数)。 |
説明
属性オブジェクト attr は、これらの関数を呼び出す前に、関数 pthread_condattr_init() で、事前に初期化しておかなければなりません。
関数は、条件変数属性オブジェクトの プロセス共有 属性を設定したり、取り出すために使用されます。 プロセス共有 属性の正当な値は、次のとおりです。
| PTHREAD_PROCESS_SHARED |
| | | このオプションにより、条件変数は、条件変数が割り当てられているメモリーにアクセスできる任意のスレッドによって操作されるようになります。
アプリケーションは、複数のプロセスがアクセスできるメモリーへの条件変数の割り当てを処理しなければなりません。 |
| PTHREAD_PROCESS_PRIVATE |
| | | 条件変数は、条件変数を初期化したスレッドと同じプロセス内で作成されたスレッドによってのみ、操作されます。
異なるプロセスのスレッドがそのような条件変数を操作しようと試みた場合、動作は不定です。 |
プロセス共有 のデフォルト値は PTHREAD_PROCESS_PRIVATE です。
pthread_condattr_setpshared() は、 attr の プロセス共有 属性を設定します。 attr の新しい プロセス共有 属性値は、 pshared パラメータで指定された領域に設定されます。
pthread_condattr_getpshared() は、 attr から プロセス共有 属性値を取得します。 attr の プロセス共有 属性値は、 pshared パラメータに返されます。
戻り値
正常終了すると、 pthread_condattr_getpshared() と pthread_condattr_setpshared() は 0 を返します。
それ以外の場合、エラーの内容を表すエラー番号を返します (errno 変数は使用しません)。
エラー
以下の条件の場合、 pthread_condattr_getpshared() と pthread_condattr_setpshared() 関数は、該当するエラー番号を返します。
| [ENOSYS] | | _POSIX_THREAD_PROCESS_SHARED が未定義で、これらの関数がサポートされていない場合。 |
以下の条件の場合、 pthread_condattr_setpshared() 関数は、該当するエラー番号を返します。
| [EINVAL] | | attr が、有効な条件変数属性オブジェクトでない場合。 |
| [EINVAL] | | pshared で指定された値が、正当な値でない場合。 |
以下の条件の場合、 pthread_condattr_getpshared() 関数は、
該当するエラー番号を返します。
| [EINVAL] | | attr または pshared で指定された値が無効の場合。 |
警告
PTHREAD_PROCESS_SHARED で定義された プロセス共有 属性で条件変数を作成した場合、協調プロセスは、条件変数が割り当てられているメモリーにアクセスできる必要があります。
著者
pthread_condattr_setpshared() と pthread_condattr_getpshared() は、IEEE POSIX
P1003.1c 規格から派生しました。
標準準拠
pthread_condattr_setpshared(): POSIX 1003.1c.
pthread_condattr_getpshared(): POSIX 1003.1c.