日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

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

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

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


目次 索引




セマフォのロックを実行します。

形式

#include <semaphore.h>

#include <time.h>

int sem_timedwait (sem_t *sem, const struct timespec *abs_timeout);


引数



sem

ロックするセマフォ。

abs_timeout

タイムアウトになる絶対時間。

説明

sem_timedwait関数は, sem_wait関数などで sem によって参照されるセマフォをロックします。しかし, sem_post関数の実行で別のプロセスあるいはスレッドのロックが解除されるのを待たずにセマフォをロックすることはできない場合,指定されたタイムアウト時簡になると,この待ち状態は終了します。

タイムアウトを測定するクロックで, abs_timeout で指定された絶対時間を過ぎると,タイムアウトになります。 (すなわち,クロックの値が abs_timeout の値と同じあるいはそれを超えた時,あるいは,abs_timeout で指定された絶対時間が呼び出し時にすでに過ぎている場合)。

セマフォがすぐにロック可能な場合,この関数がタイムアウトで処理に失敗することはありません。セマフォがすぐにロックされる場合,abs_timeout の妥当性を確認する必要はありません。


戻り値

0 正常終了。関数はセマフォ・ロック操作を実行します。
- 1 エラーの発生を示します。 errno に次のいずれかの値を設定します。

  • ETIMEDOUT -- 指定された時間が過ぎる前にセマフォをロックすることはできません。

  • EINVAL -- sem 引数が有効なセマフォを参照しません。あるいは,プロセスあるいはスレッドがブロックされており, abs_timeout パラメータのナノ秒フィールド値がゼロ未満,あるいは 1000 ミリオンと同じまたはそれを超えています。

  • EVMSERR -- 変換不可能な OpenVMS エラー


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.