cc [flags…] –I /usr/cluster/include file –L /usr/cluster/lib –l dsdev#include <rgm/libdsdev.h> scha_err_tscds_get_ext_property(scds_handle_t handle, const char *property_name, scha_prop_type_t property_type, scha_extprop_value_t **property_value);
scds_get_ext_property() 関数は、指定の拡張プロパティーの値を取得します。
まず、メソッド引数リスト(argv[]。scds_initialize() によって解析される) 内に指定されたプロパティーリストからプロパティー名を検索します。プロパティー名がメソッド引数リスト内に見つからない場合は、Oracle Solaris Cluster API を使って検索を行ないます。scha_calls(3HA) を参照してください。
正常に完了すると、このプロパティーの値が scha_extprop_value_t 構造体にある共用体内の適切な変数に配置され、この構造体へのポインタが property_value で呼び出し元に戻されます。
scds_free_ext_property() を使用してメモリーを解放する責任はユーザーにあります。
scha_prop_type_t と scha_extprop_value_t のデータ型に関する情報は、scha_calls(3HA) および scha_types.h ヘッダーファイルで見つけることができます。
DSDL は、より頻繁に使用されるリソース拡張プロパティーの取得に便利な関数を提供します。scds_property_functions(3HA) のマニュアルページを参照してください。
次のパラメータがサポートされます。
scds_initialize(3HA) から返されるハンドルです。
取得されるプロパティー名です。
プロパティー値の型です。有効な型は、scha_calls(3HA) および property_attributes(5) で定義されています。
プロパティー値のポインタです。
scds_get_ext_property() 関数の戻り値は次のとおりです。
関数の実行に成功。
関数の実行に失敗。
RTR ファイルは指定のプロパティーを定義しない。
関数の実行に成功。
関数の実行に失敗。障害コードの意味については、scha_calls(3HA) を参照してください。
#include <scha_types.h> #include <libdsdev.h> #define INT_EXT_PROP “Int_extension_property” ... int retCode; scha_extprop_value_t *intExtProp; int retrievedValue; ... retCode = scds_get_ext_property(handle, INT_EXT_PROP, SCHA_PTYPE_INT, &intExtProp); if (retCode != SCHA_ERR_NOERR) { scds_syslog(LOG_ERR, "Failed to retrieve the extension property %s: %s.", INT_EXT_PROP, scds_error_string(retCode)); ... } else { retrievedValue = intExtProp->val.val_int; ... scds_free_ext_property(intExtProp); ... } ...
インクルードファイル
ライブラリ
次の属性については、attributes(5) を参照してください。
|
scds_free_ext_property(3HA), scds_initialize(3HA), scds_property_functions(3HA), scha_calls(3HA), rt_reg(4), attributes(5), property_attributes(5)
この関数で取得できるのは、RTR ファイル内に定義された拡張プロパティー値だけです。rt_reg(4) を参照してください。