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

名称

pthread_rwlock_init読み込み/書き込みロックを初期化する

ライブラリ

POSIX Threads Library (libpthread, -lpthread)

書式

#include < pthread.h>

int
pthread_rwlock_init( pthread_rwlock_t *lock, const pthread_rwlockattr_t *attr);

解説

pthread_rwlock_init() 関数は、 attr によって指定される属性で、読み込み/書き込みロックを初期化するために使用されます。 attr が NULL であるなら、デフォルトの読み込み/書き込みロック属性が使用されます。

既に初期化されているロックで pthread_rwlock_init() を呼び出す結果は、未定義です。

戻り値

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

エラー

pthread_rwlock_init() 関数は、次の場合に失敗します:
[ EAGAIN]
システムにロックを初期化するために必要な (メモリ以外の) リソースが足りません。
[ ENOMEM]
ロックを初期化するために存在するメモリが不足しています。
[ EPERM]
呼び出し側には、操作を実行するために十分な特権がありません。

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

[ EBUSY]
システムは、以前に初期化されたが、まだ破壊されていない読み込み/書き込みロックである、 lock によって参照されるオブジェクトを再初期化する試みを検出しました。
[ EINVAL]
attr によって指定された値が無効です。

規格

pthread_rwlock_init() 関数は、 Version 2 of the Single UNIX Specification (“SUSv2”) に適合するはずです。

歴史

pthread_rwlock_init() 関数は、 FreeBSD 3.0 ではじめて登場しました。

バグ

PTHREAD_PROCESS_SHARED 属性は、サポートされていません。
August 4, 1998 FreeBSD