rs_getnameattr 子例程

用途

检索系统资源集注册表中某个资源集定义的访问控制信息。

标准 C 库 (libc.a)

语法

#include <sys/rset.h>
int rs_getnameattr(namespace, rsname, attr)
char *namespace, *rsname;
rs_attributes_t *attr;

描述

rs_getnameattr 子例程从系统资源集注册表中检索由 名称空间Rsname 参数指定的资源集定义的访问控制信息。

指定资源集的所有者标识,组标识和访问控制信息将存储在 阿特尔 参数所指向的结构中。

注: 查询此信息不需要任何特殊权限或访问许可权。

参数

描述
名称空间 指向一个以 null 结束的字符串,该字符串对应于应该在其中找到 Rsname 参数的名称空间。
Rsname 指向一个以 null 结束的字符串,该字符串对应于应该检索其信息的名称。
attr 指向一个包含 所有者 模式 字段的 rs_attributes_t 结构,该结构将由子例程填充。 rs_attributes_t 结构中的 mode 字段用于存储访问许可权,并通过对 rset.h中定义的以下一个或多个值进行逻辑 OR 运算来构造:
  • RS_IRUSR: 向名称的所有者授予读权限。
  • RS_IWUSR: 授予该名称的所有者写权限。
  • RS_IRGRP: 将读权限授予与名称所有者相同的组中的用户。
  • RS_IWGRP: 将写权限授予与名称所有者相同的组中的用户。
  • RS_IROTH: 向其他人提供读权限。
  • RS_IWOTH: 向他人提供写权限。

用户的读特权意味着用户可以通过发出对 rs_getnamedrset 子例程的调用来检索资源集定义。 用户的写特权意味着用户可以通过对 rs_getnamedrset 子例程发出另一次调用来重新定义名称。

返回值

如果成功,那么将返回值 0。 如果不成功,则返回值为-1,并设置errno全局变量来指示错误。

错误代码

如果以下一个或多个条件成立,那么 rs_getnameattr 子例程不成功:

描述
EINVAL 如果下列其中一项为 true:
  • Rsname 参数是一个空指针。
  • 名称空间 参数是一个空指针。
  • Rsname名称空间 参数指向一个无效的名称。 名称长度为 0 或大于 RSET_NAME_SIZE 常量 (在 rset.h中定义) ,或者 rsname 参数包含无效字符。
ENOENT 在由 名称空间 参数标识的名称空间中无法找到 Rsname 参数。
EFAULT 地址无效。