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


OpenVMS マニュアル


 

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

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

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


目次 索引




セマフォセットを取得します。

形式

#include <sem.h>

int semget (key_t key, int nsems, int semflg);


引数



key

対応するセマフォ識別子を返すためのキー。

nsems

semid_dsデータ構造体の sem_nsems メンバの初期化の際に使用する値。詳細は,「説明」の項を参照してください。

semflg

新しいセマフォに対応する semid_dsデータ構造体の sem_perm.mode メンバの下位 9 ビットを初期化する際に使用するフラグ。詳細は,「説明」の項を参照してください。

value

セマフォに渡される初期値。この引数は,セマフォの作成時のみに使用されます。

説明

semget関数は,key に対応するセマフォ識別子を返します。

次の条件に当てはまる場合は,key に対して semid_dsデータ構造体とそれに対応する nsems セマフォセット ( <sys/sem.h>ヘッダファイルを参照) に対するセマフォ識別子が作成されます。

  • key 引数が,対応するセマフォ識別子をまだ持っておらず, (semflg &IPC_CREAT) がゼロでない場合。

作成された場合,新しいセマフォ識別子に対する semid_dsデータ構造体は次のように初期化されます。

  • sem_perm.cuidsem_perm.uidsem_perm.cgid,および sem_perm.gid は,それぞれ呼び出しプロセスの有効なユーザ ID および有効なグループ ID と等しい値に設定されます。

  • sem_perm.mode の下位 9 ビットが semflg 引数の下位 9 ビットと同じ値に設定されます。

  • 変数 sem_nsems が,nsems 引数値と同じ値に設定されます。

  • 変数 sem_otime にゼロが設定され, sem_ctime に現在の時刻が設定されます。

  • セマフォセット内の各セマフォに対応するデータ構造体は初期化の必要がありません。 semctl関数でコマンド SETVAL あるいは SETALL を使用して各セマフォを初期化することができます。

  注意
key 引数値 IPC_PRIVATE はサポートされていません。


戻り値

n 正常終了。この関数は負でない整数のセマフォ識別子を返します。
- 1 エラーを示します。この関数は, errno に次のいづれかの値を設定します。

  • EACCES -- key に対するセマフォ識別子は存在しますが, semflg の下位 9 ビットで指定される操作権限が与えられていません。

  • EEXIST -- key に対するセマフォ識別子は存在しますが,((semflg &IPC_CREAT) &&(semflg &IPC_EXCL)) がゼロ以外の値です。

  • EFAULT -- 関数に渡された引数にアクセスできません。

  • EINVAL -- nsems の値が 0 以下、あるいはシステムが課す制限を超える,あるいは key に対するセマフォ識別子が存在するが対応するセマフォセットのセマフォの数が nsems よりも小さいか, nsems が 0 でありません。

  • ENOENT -- key に対するセマフォ識別子が存在せず, ( semflg &IPC_CREAT) が 0 です。

  • ENOSPC -- セマフォ識別子を作成すると,システムワイドでセマフォに認められている最大数を超えてしまいます。

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


目次 索引

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