摘要
创建 fifo。
声明
#include <zircon/syscalls.h>
zx_status_t zx_fifo_create(size_t elem_count,
size_t elem_size,
uint32_t options,
zx_handle_t* out0,
zx_handle_t* out1);
说明
zx_fifo_create()
会创建一个 fifo,实际上是一对 fifo
(共 elem_count 个条目,共 elem_size 字节)。有两个端点
返回。向一个端点写入数据会将一个元素加入到 fifo 中
发送数据。
Fifos 旨在作为共享内存传输的控制平面。 它们的读写操作比套接字或 channels,但是元素的大小有严格的限制 和缓冲区
每个 fifo (elem_count * elem_size
) 的总大小不得超过 4096 个字节。
options 参数必须为 0。
权限
调用方作业政策必须允许 ZX_POL_NEW_FIFO
。
返回值
如果成功,zx_fifo_create()
会返回 ZX_OK
。如果出现
则会返回以下某个值。
错误
ZX_ERR_INVALID_ARGS
out0 或 out0 是无效的指针、NULL 或
options 是 0 以外的任何值。
ZX_ERR_OUT_OF_RANGE
elem_count 或 elem_size 为零,或
elem_count * elem_size 大于 4096。
ZX_ERR_NO_MEMORY
因内存不足而失败。
用户空间没有好办法处理这种(不太可能)错误。
在将来的版本中,此错误不会再发生。