HP OpenVMS Systems Documentation |
| 前へ | 次へ | 目次 | 索引 |
LBR$GET_INDEX ルーチンは,インデックス内で指定したキーを検索しユーザ定義ルーチンを呼び出します。
LBR$GET_INDEX library_index,index_number, routine_name [, match_desc] [, flags]
OpenVMS 用法: cond_value データ型: ロングワード (符号なし) アクセス: 書き込み専用 受け渡し方: 値渡し
ロングワードの状態値。大部分のユーティリティ・ルーチンは,状態値を返します。このルーチンから戻される状態値は,「戻される状態値」の項に示します。
library_index
OpenVMS 用法: longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
LBR$INI_CONTROL ルーチンから返されたライブラリ制御インデックス。引数 library_index は,インデックスが格納されたロングワードのアドレスです。index_number
OpenVMS 用法: longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
ライブラリ・インデックスの番号。引数 index_number は,インデックス番号が格納されたロングワードのアドレスです。これはユーザ定義ルーチンへの入力として使用するキーに関連付けられたインデックス番号です。routine_name
OpenVMS 用法: procedure データ型: プロシージャ値 アクセス: 読み取り専用 受け渡し方: 参照渡し
指定したインデックス・キーに対して呼び出されるユーザ定義ルーチン。引数 routine_name は,このユーザ定義ルーチンのプロシージャ値のアドレス。LBR$GET_INDEX は,このルーチンに 3 つの引数を渡します。
- キーの名前。
- ASCII キーを持つライブラリの場合は,引数 key_name は,そのキーを指す文字列記述子のアドレスです。ユーザ・ルーチンに渡される文字列と文字列記述子は,呼び出されている間だけ,有効であることに注意してください。その文字列をその後の処理でも使用する場合には,ローカルにコピーしておく必要があります。
- バイナリ・キーを持つライブラリの場合は,引数 key_name はキー番号が格納された符号なしロングワードのアドレスです。
- このキーの名前に対応するモジュール・ヘッダのレコード・ファイル・アドレス (RFA)。引数 RFA は,RFA が格納された 2 つのロングワードからなる配列のアドレスです。
- キーの型。各フラグ・ビットの意味は次のとおりです。
フラグ・ビット 意味 LBR$M_SYM_WEAK = 1 UNIX スタイルの弱いシンボル属性 LBR$M_SYM_GROUP = 2 グループ・シンボル属性
ユーザ・ルーチンは,正常終了,または異常終了を示す戻り値を返す必要があります。ユーザ・ルーチンが偽の値 (最下位ビット = 0) を返した場合には, LBR$GET_INDEX はインデックスの検索を中止し,ユーザ定義ルーチンが生成したステータス値を,呼び出し元プログラムに返します。
ユーザ・ルーチンからは,LBR$DELETE_KEY や LBR$INSERT_KEY を呼び出すことはできません。
match_desc
OpenVMS 用法: char_string データ型: 文字列 アクセス: 読み取り専用 受け渡し方: 記述子渡し
キー照合識別子。引数 match_desc は,どのキーについてユーザ定義ルーチンを呼び出すかを指定するために使われる文字列を指す文字列記述子のアドレスです。この文字列ではワイルドカードを使うことができます。この引数を省略した場合には,インデックス内のすべてのキーについて,ユーザ・ルーチンが呼び出されます。引数 match_desc は,ASCII キーを持つライブラリの場合にのみ有効です。flags
OpenVMS 用法: mask_longword データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 値渡し
指定してあり,しかも 0 ではない場合には,指定したキーの型,またはすべての型を示します。フラグ・ビットの意味は,次のとおりです。
フラグ・ビット 意味 LBR$M_SYM_WEAK = 0x1 UNIX スタイルの弱いシンボル属性 LBR$M_SYM_GROUP = 0x2 グループ・シンボル属性 LBR$M_SYM_ALL = 0x80000000 すべてのシンボル
ユーザ・ルーチンには,追加された 3 番目のパラメータによって,キーの型が渡されます。
LBR$GET_INDEX は指定されたインデックス内で,引数 match_desc と一致するキーを検索します。一致するキーが見つかるたびに,引数 routine_name で指定されたユーザ・ルーチンを呼び出します。引数 match_desc を指定しなかった場合には,インデックス内のすべてのキーに対して,ユーザ・ルーチンを呼び出します。たとえば,match_desc を TR* とし, index_number に 1 (モジュール名テーブル) を設定してオブジェクト・ライブラリに対して LBR$GET_INDEX を呼び出した場合には,LBR$GET_INDEX は,名前が TR で始まる各モジュールに対して,routine_name を呼び出します。
LBR$_ILLCTL 指定したライブラリ制御インデックスは無効。 LBR$_ILLIDXNUM 指定したインデックス番号は無効。 LBR$_LIBNOTOPN 指定したライブラリは,オープンされていない。 LBR$_NULIDX 指定したライブラリは空である。
LBR$INSERT_KEY ルーチンは,現在のライブラリのインデックスに新しいキーを追加します。
LBR$INSERT_KEY library_index ,key_name ,txtrfa, [flags]
OpenVMS 用法: cond_value データ型: ロングワード (符号なし) アクセス: 書き込み専用 受け渡し方: 値渡し
ロングワードの状態値。大部分のユーティリティ・ルーチンは,状態値を返します。このルーチンから戻される状態値は,「戻される状態値」の項に示します。
library_index
OpenVMS 用法: longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
LBR$INI_CONTROL ライブラリ・ルーチンから返されたライブラリ制御インデックス。引数 library_index は,インデックスが格納されたロングワードのアドレスです。key_name
OpenVMS 用法: longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
追加する新しいキーの名前。ライブラリでバイナリ・キーが使われている場合には,引数 key_name は,キーの値が格納された符号なしロングワードのアドレスです。ライブラリで ASCII キーが使われている場合には,引数 key_name は,次の引数特性を持つキーを指す文字列記述子のアドレスです。
引数特性 エントリ OpenVMS 用法 char_string データ型 文字列 アクセス 読み取り専用 受け渡し方 記述子渡し
txtrfa
OpenVMS 用法: vector_longword_unsigned データ型: ロングワード (符号なし) アクセス: 変更 受け渡し方: 参照渡し
追加する新しいキーに関連付けられるモジュールのレコード・ファイル・アドレス (RFA)。引数 txtrfa は,RFA が格納された 2 つのロングワードからなる配列のアドレスです。最初の LBR$PUT_RECORD の呼び出しで返される RFA を使うことができます。flags
OpenVMS 用法: mask_longword データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 値渡し
指定した場合には,キーの型を示します。フラグ・ビットの意味は,次のとおりです。
フラグ・ビット 意味 LBR$M_SYM_WEAK = 0x1 UNIX スタイルの弱いシンボル属性 LBR$M_SYM_GROUP = 0x2 グループ・シンボル属性
このパラメータを指定しない場合には,通常の NonGroup-Global 型を指定したものと見なされます。
LBR$SEARCH や LBR$GET_INDEX で指定したユーザ定義ルーチンから LBR$INSERT_KEY を呼び出すことはできません。
LBR$_DUPKEY 指定したキーはインデックスに既に含まれている。 LBR$_ILLCTL 指定したライブラリ制御インデックスは無効。 LBR$_INVRFA 指定した RFA は有効なデータを指していない。 LBR$_LIBNOTOPN 指定したライブラリは,オープンされていない。 LBR$_UPDURTRAV LBR$INSERT_KEY が, LBR$SEARCH または LBR$GET_INDEX で指定されたユーザ定義ルーチンから呼び出された。
LBR$LOOKUP_KEY ルーチンは,ライブラリの現在のインデックスからキーを検索し,そのキーに関連付けられたモジュール内のデータへのアクセスを準備します。
LBR$LOOKUP_KEY library_index ,key_name ,txtrfa, [flags]
OpenVMS 用法: cond_value データ型: ロングワード (符号なし) アクセス: 書き込み専用 受け渡し方: 値渡し
ロングワードの状態値。大部分のユーティリティ・ルーチンは,状態値を返します。このルーチンから戻される状態値は,「戻される状態値」の項に示します。
library_index
OpenVMS 用法: longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
LBR$INI_CONTROL ライブラリ・ルーチンから返されたライブラリ制御インデックス。引数 library_index は,インデックスが格納されたロングワードのアドレスです。key_name
OpenVMS 用法: longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
ライブラリのキーの名前。ライブラリでバイナリ・キーが使われている場合には,引数 key_name は,キーの値が格納された符号なしロングワードのアドレスです。ライブラリで ASCII キーが使われている場合には,引数 key_name は,次の引数特性を持つキーの文字列記述子のアドレスです。
引数特性 エントリ OpenVMS 用法 char_string データ型 文字列 アクセス 読み取り専用 受け渡し方 記述子渡し
txtrfa
OpenVMS 用法: vector_longword_unsigned データ型: ロングワード (符号なし) アクセス: 書き込み専用 受け渡し方: 参照渡し
ライブラリ・モジュール・ヘッダのレコード・ファイル・アドレス (RFA)。引数 txtrfa は,モジュール・ヘッダの RFA を受け取る 2 つのロングワードからなる配列のアドレスです。flags
OpenVMS 用法: mask_longword データ型: ロングワード (符号なし) アクセス: 書き込み専用 受け渡し方: 参照渡し
この引数を指定し,しかも 0 でない場合には,返されるキーの型を指定します。フラグ・ビットの意味は,次のとおりです。
フラグ・ビット 意味 LBR$M_SYM_WEAK = 0x1 UNIX スタイルの弱いシンボル属性 LBR$M_SYM_GROUP = 0x2 グループ・シンボル属性
返されるキーは,最高位の優先順位が定義された型を持つキーです。
LBR$LOOKUP_KEY は,指定されたキーを検出すると,内部テーブルを初期化して,関連付けられたデータへアクセスできるようにします。このルーチンは,txtrfa が指す 2 つのロングワードからなる配列に RFA を返します。
LBR$_ILLCTL 指定したライブラリ制御インデックスは無効。 LBR$_INVRFA 取得された RFA が無効。 LBR$_KEYNOTFND 指定したキーが見つからない。 LBR$_LIBNOTOPN 指定したライブラリは,オープンされていない。
LBR$PUT_RECORD ルーチンは,ライブラリ内の,空き領域が始まる位置にデータ・レコードを書き込みます。
LBR$PUT_RECORD library_index ,bufdes ,txtrfa [,mod_size]
OpenVMS 用法: cond_value データ型: ロングワード (符号なし) アクセス: 書き込み専用 受け渡し方: 値渡し
ロングワードの状態値。大部分のユーティリティ・ルーチンは,状態値を返します。このルーチンから戻される状態値は,「戻される状態値」の項に示します。
library_index
OpenVMS 用法: longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
LBR$INI_CONTROL ライブラリ・ルーチンから返されたライブラリ制御インデックス。引数 library_index は,インデックスが格納されたロングワードのアドレスです。bufdes
OpenVMS 用法: char_string データ型: 文字列 アクセス: 読み取り専用 受け渡し方: 記述子渡し
ライブラリに書き込まれるレコード。引数 bufdes は,レコードが格納されたバッファを指す文字列記述子のアドレスです。 VAX ライブラリの最大レコード・サイズは,シンボル LBR$C_MAXRECSIZ で定義されています。 Alpha と I64 のライブラリの場合は,最大レコード・サイズを示すシンボルは ELBR$_MAXRECSIZ です。txtrfa
OpenVMS 用法: vector_longword_unsigned データ型: ロングワード (符号なし) アクセス: 書き込み専用 受け渡し方: 参照渡し
モジュール・ヘッダのレコード・ファイル・アドレス (RFA)。引数 txtrfa は,最初の LBR$PUT_RECORD の呼び出しで新しく作成されたモジュール・ヘッダの RFA を受け取る 2 つのロングワードからなる配列のアドレスです。mod_size
OpenVMS 用法: byte count データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 値渡し
mod_size の値は,このルーチンを最初に呼び出したときにだけ読み取られ,それ以外では無視されます。この値には,書き込むモジュールのサイズを指定し,ライブラリ内の連続した領域がそのモジュールに割り当てられるようにします。この引数は ELF 以外のオブジェクト・ライブラリとデータ縮小型の ELF オブジェクト・ライブラリでは無視されます。バイト・ストリームを閉じて,モジュールを閉じるためには,従来どおりに, LBR$PUT_END ルーチンを呼び出す必要があります。
LBR$PUT_RECORD を初めて呼び出した場合には,このルーチンは最初にモジュール・ヘッダを作成し,その RFA を txtrfa が指す 2 つのロングワードからなる配列に返します。その後 LBR$PUT_RECORD は指定されたデータ・レコードをライブラリに書き込みます。続いて LBR$PUT_RECORD を呼び出した場合には,このルーチンは,ライブラリ内の,空き領域が始まる位置 (前のレコードの直後) にデータ・レコードを書き込みます。モジュールの最後のレコードを書き込んだ後で,LBR$PUT_END を呼び出す必要があります。
LBR$_ILLCTL 指定したライブラリ制御インデックスは無効。 LBR$_LIBNOTOPN 指定したライブラリは,オープンされていない。
| 前へ | 次へ | 目次 | 索引 |