Z_channel_创建

总结

创建频道。

声明

#include <zircon/syscalls.h>

zx_status_t zx_channel_create(uint32_t options,
                              zx_handle_t* out0,
                              zx_handle_t* out1);

说明

zx_channel_create() 会创建一个通道,这是一种双向数据报样式消息传输,能够将原始数据字节以及句柄从一端发送到另一端。

成功后会返回两个句柄,分别用于访问通道两端。写入一个句柄的消息可以从相反的句柄读取。

标识名将拥有以下权限:

  • ZX_RIGHT_TRANSFER:允许通过 zx_channel_write() 将它们发送到其他进程。
  • ZX_RIGHT_WAIT:允许用户等待其信号。
  • ZX_RIGHT_INSPECT
  • ZX_RIGHT_READ:允许从它们中读取消息。
  • ZX_RIGHT_WRITE:允许向其中写入消息。
  • ZX_RIGHT_SIGNAL
  • ZX_RIGHT_SIGNAL_PEER

权限

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

返回值

zx_channel_create() 会在成功时返回 ZX_OK。如果失败,则返回负的错误值。

错误

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

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

另请参阅