getobjattr 子例程
用途
查询域分配的对象数据库中定义的对象安全性信息。
库
安全性库 (libc.a)
语法
#include <usersec.h>
int getobjattr ( Obj, Attribute, Value, Type)
char * Obj;
char * Attribute;
void *Value;
int Type;描述
getobjattr 子例程从域分配的对象数据库中读取指定的属性。 如果数据库未打开,那么此子例程将执行隐式打开以进行读取。 对于 SEC_CHAR 和 SEC_LIST 类型的属性, getobjattr 子例程将值返回到分配的内存。 调用者必须释放此分配的内存。
参数
| 项 | 描述 |
|---|---|
| 对象 | 指定对象名。 |
| 属性 | 指定要读取的属性。 在 usersec.h 文件中定义了以下可能的属性:
|
| VALUE | 根据 属性 和 类型 参数中指定的值指定指针或指向指针的指针。 请参阅 Type 参数以获取更多详细信息。 |
| TYPE | Type 参数指定属性的类型。 在 usersec.h 文件中定义了以下有效类型: SEC_INT 属性的格式为整数。 对于子例程,必须提供指向已定义整数变量的指针。 SEC_LIST 属性的格式是一系列并置字符串,每个字符串都以 null 结束。 序列中的最后一个字符串由两个连续的空字符终止。 对于子例程,必须提供指向定义的字符指针变量的指针。 调用者必须释放此内存。 |
安全性
访问的文件:
| 项 | 描述 |
|---|---|
| 文件 | 方式 |
|
|
返回值
如果成功, getobjattr 子例程将返回零。 否则,返回值为-1,并设置errno全局值来指示错误。
错误代码
| 项 | 描述 |
|---|---|
| EINVAL | Obj 参数为 NULL。 Attribute 或 Type 参数为 NULL 或不包含其中一个已定义的值。 Obj 参数为 ALL , Attribute 参数不是 S_DOMAINS。 Value 参数未指向此类型属性的有效缓冲区。 |
| ENOATTR | Attribute 参数是 S_DOMAINS ,但 Obj 参数不是 ALL。 在 Attribute 参数中指定的属性有效,但没有为对象定义任何值。 |
| ENOENT | 在 Obj 参数中指定的对象不存在。 |
| ENOMEM | 无法分配内存。 |
| EPERM | 不允许该操作。 |
| EACCES | 数据请求的访问许可权被拒绝。 |