pthread_mutexattr_setpshared(3C) は、mutex 変数のスコープを設定します。
int pthread_mutexattr_setpshared(pthread_mutexattr_t *restrict mattr, int *restrict pshared);
#include <pthread.h> pthread_mutexattr_t mattr; int ret; ret = pthread_mutexattr_init(&mattr); /* * resetting to its default value: private */ ret = pthread_mutexattr_setpshared(&mattr, PTHREAD_PROCESS_PRIVATE);
mutex 変数のスコープは、プロセス専用 (プロセス内) またはシステム共通 (プロセス間) です。複数のプロセスのスレッド間で mutex を共有させるには、pshared 属性を PTHREAD_PROCESS_SHARED に設定して、共有メモリー内に mutex を生成します。
mutex の pshared 属性を PTHREAD_PROCESS_PRIVATE に設定した場合、その mutex を操作できるのは同じプロセスで生成されたスレッドだけです。
pthread_mutexattr_setpshared () は、正常終了時に 0 を返します。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると、この関数は失敗し、対応する値を返します。
EINVAL
説明:mattr で指定された値が無効です。