日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
sem_init (Integrity, Alpha) |
名前なしセマフォを初期化します。
#include <semaphore.h>int sem_init (sem_t *sem, int pshared, unsigned int value );
sem
初期化したセマフォの記述子を受け取る場所。pshared
作成したプロセスとその子プロセスとの間でセマフォを共有可能にするかどうかを指示するための値。ゼロ以外の値で共有可能,ゼロだと共有できません。
注意
本リリースでは名前なしセマフォのプロセス間での共有はサポートされていないため, pshared の値は,スレッド間ではゼロでなければなりません。
value
セマフォに渡す初期値。
sem_init関数は,指定した値で新しい計数セマフォを作成します。セマフォは,重要なリソースへのアクセスを制限するために使用されます。プロセスが他のプロセスからの干渉の無いリソース・アクセスを必要とする場合,対応するセマフォで接続を確立しようとします。セマフォの値がゼロより大きい場合,接続が確立され,セマフォ値が1つ減少します。セマフォ値がゼロ以下の場合,プロセスによるリソースへのアクセスはブロックされ,別のプロセスがセマフォをリリースしてセマフォ値が 1 つ増加するまで待ちます。sem_init関数は名前なしセマフォとプロセスとの間の接続を確立し, sem_waitおよび sem_trywait関数はセマフォをロックし, sem_post関数はセマフォのロックを解除します。セマフォで使用するためにプロセスに割り当てられたシステム・リソースの割り当ての解除には sem_destroy関数を使用してください。セマフォの値を取得には sem_getvalue関数を使用してください。
sem_init関数の呼び出しで作成されたセマフォは, sem_destroy関数の呼び出しにより削除されるまで,有効な状態で残ります。
0 正常終了 - 1 エラーの発生を示します。この関数は, errno に次のいずれかの値を設定します。
- EINVAL -- value 引数が {SEM_VALUE_MAX} を超えています。
- ENOSYS -- この関数は実装されていません。
- EVMSERR -- 変換不可能な OpenVMS エラー
目次 | 索引 |
|