cc [flags…] –I /usr/cluster/include file –L /usr/cluster/lib –l dsdev#include <rgm/libdsdev.h> scha_err_t scds_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_calls(3HA) 和 scha_types.h 头文件中找到有关数据类型 scha_prop_type_t 和 scha_extprop_value_t 的信息。
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)。