getdevattr 子例程
用途
检索特权设备数据库中的设备安全性信息。
库
安全性库 (libc.a)
语法
描述
getdevattr 子例程从设备数据库中读取指定的属性。 如果数据库未打开,那么此子例程将执行隐式打开以进行读取。 对于 SEC_CHAR 和 SEC_LIST 类型的属性, getdevattr 子例程将值返回到分配的内存。 调用者需要释放此内存。
参数
| 项 | 描述 |
|---|---|
| 设备 | 指定设备名。 该值应该是系统上设备的完整路径。 除非 Type 参数为 SEC_COMMIT,否则必须指定此参数。 |
| 属性 | 指定读取的属性。 在 usersec.h 文件中定义了以下可能的属性:
|
| VALUE | 根据 Attribute 数组和 Type 参数指定指针或指向指针的指针。 请参阅 Type 参数以获取更多详细信息。 |
| TYPE | 指定属性的类型。 在 usersec.h 文件中定义了以下有效类型:
|
安全性
访问的文件:
| 文件 | 方式 |
|---|---|
| /etc/security/privdevs | rw |
返回值
成功完成时, getdevattr 子例程返回值 0。 否则,返回值为-1,并设置errno全局值来指示错误。
错误代码
如果 getdevattr 子例程失败,那么将设置下列其中一个 errno 值:
| 项 | 描述 |
|---|---|
| EINVAL | Device 参数为 NULL 或 default。 |
| EINVAL | Attribute 或 Type 参数为 NULL 或不包含其中一个已定义的值。 |
| EINVAL | Attribute 参数为 S_PRIVDEVS,但 Device 参数不是 ALL。 |
| ENOENT | Device 参数中指定的设备不存在。 |
| ENOATTR | Attribute 参数中指定的属性有效,但没有为设备定义任何值。 |
| EPERM | 不允许该操作。 |