zx_channel_create

摘要

建立管道。

宣告

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

另請參閱