listea 子例程
用途
列示与文件关联的扩展属性。
语法
#include <sys/ea.h>
ssize_t listea(const char *path, char *list, size_t size);
ssize_t flistea (int filedes, char *list, size_t size);
ssize_t llistea (const char *path, char *list, size_t size);描述
扩展属性是与文件系统对象 (例如,文件,目录和符号链接) 关联的名称/值对。 它们是与文件系统中的所有对象 (即, stat (2) 数据) 相关联的正常属性的扩展。
请勿定义具有 8 个字符前缀 "(0xF8) 系统 (0xF8)"的扩展属性名称。 前缀 "(0xF8) 系统 (0xF8)" 保留为仅供系统使用。
注: 0xF8 前缀表示一个不可打印的字符。
利斯泰亚 子例程检索与文件系统中给定的 路径 相关联的扩展属性名称的列表。 列表 是一组 (NULL-terminated) 名称,一个接着另一个名称。 可以从列表中省略调用过程对其没有访问权的扩展属性的名称。 这将返回属性名称列表的长度。 弗利斯泰亚 子例程与 利斯泰亚完全相同,但它采用文件描述符而不是路径。 利斯泰亚 子例程与 利斯泰亚相同,但在符号链接的情况下,链接本身是被查询的,而不是它所引用的文件。
可以将大小为 0 的空缓冲区传递到这些调用中,以返回扩展属性名称列表的当前大小,该大小可用于估算缓冲区大小是否足够大,以保存名称列表。
参数
| 项 | 描述 |
|---|---|
| 路径 | 该文件的路径名。 |
| list | 一个指向缓冲区的指针,属性列表将存储在该缓冲区中。 |
| 大小 | 这是缓冲区的大小。 |
| 文件 | 该文件的文件描述符。 |
返回值
如果 利斯泰亚 子例程成功,那么将返回一个非负数,指示属性名称列表的长度 (以字节为单位)。 一旦失败,将返回-1并适当设置errno。
错误代码
| 项 | 描述 |
|---|---|
| EACCES | 调用者缺少对基本文件的读许可权,或者缺少指定属性 读的相应 ACL 特权。 |
| EFAULT | 为 路径 或 列表传递了错误地址。 |
| EFORMAT | 文件系统能够支持 EAs ,但 EAs 被禁用。 |
| ENOTSUP | 扩展属性不受文件系统的支持。 |
| ERANGE | 列表缓冲区的大小过小,无法保存结果。 |