zx_fifo_write

摘要

将数据写入 fifo。

声明

#include <zircon/syscalls.h>

zx_status_t zx_fifo_write(zx_handle_t handle,
                          size_t elem_size,
                          const void* data,
                          size_t count,
                          size_t* actual_count);

说明

zx_fifo_write() 尝试写入最多 count 个元素 (count * elem_size 个字节)从 data 转换为 handle 指定的 fifo。

如果没有足够的 在 fifo 中放置所有这些文件。您获得的 实际写入的元素数量是通过 actual_count 返回的。

elem_size 指定的元素尺寸必须与元素尺寸一致 传入 zx_fifo_create() 的请求消息。

actual_count 允许为 NULL。这在编写代码时很有用 单个元素:如果 count 为 1 且 zx_fifo_write() 返回 ZX_OKactual_count 一定会为 1,因此可以放心地将其忽略。

写入零个元素是不合法的。

权限

handle 的类型必须为 ZX_OBJ_TYPE_FIFO 且包含 ZX_RIGHT_WRITE

返回值

zx_fifo_write() 会在成功时返回 ZX_OK,并返回 通过 actual_count 写入(至少一个)的元素数量。

错误

ZX_ERR_BAD_HANDLE handle 不是有效的句柄。

ZX_ERR_WRONG_TYPE handle 不是 fifo 句柄。

ZX_ERR_INVALID_ARGS data 是无效的指针或 actual_count 为无效指针。

ZX_ERR_OUT_OF_RANGE count 为零或 elem_size 不等于 fifo 的元素尺寸。

ZX_ERR_ACCESS_DENIED 句柄没有 ZX_RIGHT_WRITE

ZX_ERR_PEER_CLOSED FIFO 的另一端是关着的。

ZX_ERR_SHOULD_WAIT fifo 已满。

另请参阅