zx_channel_create


英文原文快照


名称

channel_create —— 创建channel

概要

  1. #include <zircon/syscalls.h>
  2. zx_status_t zx_channel_create(uint32_t options,
  3. zx_handle_t* out0, zx_handle_t* out1);

描述

channel_create() 创建一个双向数据报式的消息传输通道,能够从一侧向另一侧发送原始字节数据和句柄。

调用成功则返回两个句柄,分别提供对通道两侧的访问,写入一个句柄的消息可以在相反的方向上被读取。

返回的句柄具有ZX_RIGHT_TRANSFER(允许它们通过写入channel发送到另一个进程),ZX_RIGHT_WRITE(允许将消息写入它们)和ZX_RIGHT_READ(允许从它们中读取消息)权限。

权限

TODO(ZX-2399)

返回值

channel_create() 调用成功则返回ZX_OK。如果发生错误,则返回负的错误码。

错误码

ZX_ERR_INVALID_ARGSout0out1是无效指针或NULL,或options是0以外的其它任何值。

ZX_ERR_NO_MEMORY:由于内存不足导致的失败。而用户空间无法处理这个(不太可能发生的)错误。在将来的构建版本中,将不再出现此错误。

另见

handle_closehandle_duplicatehandle_replaceobject_wait_oneobject_wait_manychannel_callchannel_readchannel_write