总结
创建频道。
声明
#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
out0 或 out1 是无效的指针,或者 NULL 或 options 是 0 以外的任何值。
ZX_ERR_NO_MEMORY
由于内存不足而失败。
用户空间没有什么方法来处理此(不太可能)错误。在以后的 build 中,此错误不会再发生。
另请参阅
zx_channel_call()
zx_channel_read()
zx_channel_write()
zx_handle_close()
zx_handle_replace()
zx_object_wait_async()
zx_object_wait_many()
zx_object_wait_one()