zx_fifo_create

摘要

创建 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 out0out0 是无效的指针、NULL 或 options 是 0 以外的任何值。

ZX_ERR_OUT_OF_RANGE elem_countelem_size 为零,或 elem_count * elem_size 大于 4096。

ZX_ERR_NO_MEMORY 因内存不足而失败。 用户空间没有好办法处理这种(不太可能)错误。 在将来的版本中,此错误不会再发生。

另请参阅