日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトル
目次
まえがき
リファレンス・セクション
   ≫ライブラリ関数一覧
索引
PDF
OpenVMS ホーム

HP OpenVMS
HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)


目次 索引




名前なしセマフォを初期化します。

形式

#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 エラー


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項