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,它实际上是一对由 elem_size 字节的 elem_count 条目组成的 fifos。返回两个端点。向一个端点写入一个元素,会将一个元素加入对向端点从中读取数据的 fifo。

Fifo 旨在成为共享内存传输的控制平面。它们的读写操作比套接字通道更高效,但是元素和缓冲区的大小有严格的限制。

每个 fifo (elem_count * elem_size) 的总大小不能超过 4096 字节。

options 参数必须为 0。

权限

调用方作业政策必须允许 ZX_POL_NEW_FIFO

返回值

zx_fifo_create() 会在成功时返回 ZX_OK。如果失败,将返回以下值之一。

错误

ZX_ERR_INVALID_ARGS out0out1 是无效的指针,或者 NULL 或 options 是 0 以外的任何值。

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

ZX_ERR_NO_MEMORY 由于内存不足而失败。 用户空间没有什么方法来处理此(不太可能)错误。在以后的 build 中,此错误不会再发生。

另请参阅