ra_get_attachinfo 子例程
用途
检索工作组件所连接到的资源集附件。
库
标准 C 库 (libc.a)
语法
#include <sys/rset.h>
attachinfo_t *ra_get_attachinfo(rstype, rsid, offset, length, flags)
rstype_t rstype;
rsid_t rsid;
off64_t offset;
size64_t length;
unsigned int flags;描述
ra_get_attachinfo 子例程检索描述涉及由 rstype 和 rsid指定的工作组件的附件的信息。
此信息作为 attachinfo_t 结构的以 null 结束的链接列表返回。 在调用者的进程堆中分配 attachinfo_t 结构。 提供了 ra_free_attachinfo 子例程以释放 ra_get_attachinfo返回的 attachinfo_t 结构列表。
ra_get_attachinfo 子例程检索以下工作组件的附件信息:
- 由共享内存段标识标识的共享内存对象。
- 由打开的文件描述符标识的文件。
- 当前用户进程中的地址范围。
- 上述其中一个工作组件中的地址范围,由其 偏移 在对象及其 长度中标识。
如果 rstype 是内存对象,并且 length 具有 0 值,那么返回的附件信息将针对内存对象的最后一部分 (从 offset开始)。
注: 资源集附件可以在 ra_get_attachinfo 检索它们期间或之后更改。 无法保证返回的附件仍存在,或者已检索到所有现有附件。
参数
| 项 | 描述 |
|---|---|
| 雷斯特佩 | 指定要为其检索附件信息的工作组件的类型。 此参数可以具有下列其中一个值:
|
| Rsid | 标识要对其检索附件信息的工作组件。 此参数可以是下列其中一项:
|
| 偏移 | 指定要检索其附件信息的内存对象中某个范围的偏移量。 仅对于 雷斯特佩的以下值,才会考虑此参数:
|
| length | 指定要检索其附件信息的内存对象内的范围的长度。 仅对于以下 rstripe 值,才会考虑此参数:
|
| 标志 | 保留以供将来使用。 指定为 0。 |
返回值
成功完成时,将返回指向以 null 结束的 attachinfo_t 结构列表中第一个元素的指针。 如果工作组件不具有任何附件,那么将返回空指针。 否则,将返回值 -1 ,并设置 errno 全局变量以指示错误。
错误代码
如果下列一项或多项为 true ,那么 ra_get_attachinfo 子例程将失败:
| 项 | 描述 |
|---|---|
| EINVAL | 下列其中一种情况必须为真:
|
| EBADF | 雷斯特佩 参数为 R_FILDES ,并且 Rsid 不是有效的打开文件描述符。 |
| ENOTSUP | rstype 参数是 R_PROCMEM , rsid.at_pid 字段不是RS_自己。 |