摘要
建立管道。
宣告
#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 或 out0 是無效的指標、空值或
options 是 0 以外的任何值。
ZX_ERR_NO_MEMORY
因記憶體不足而失敗。
使用者空間無法妥善處理這種 (異常) 錯誤。
在日後的版本中不會再發生這個錯誤。
另請參閱
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()