摘要
建立管道。
宣告
#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
因記憶體不足而失敗。使用者空間無法以任何方式處理這個錯誤 (極可能) 錯誤。日後的建構作業不會再發生這個錯誤。
另請參閱
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()