zx_fifo_create

摘要

發泡。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_fifo_create(size_t elem_count,
                           size_t elem_size,
                           uint32_t options,
                           zx_handle_t* out0,
                           zx_handle_t* out1);

說明

zx_fifo_create() 會建立 fifo,事實上為 elem_size 個位元組的一組 elem_count 項目。系統會傳回兩個端點。寫入一個端點會將元素排入佇列中,而相對端點讀取的面板。

Fifos 主要用來當做共用記憶體傳輸的控制層。讀取和寫入作業的效率高於通訊端管道,但是元素和緩衝區的大小有嚴重限制。

每個圖標 (elem_count * elem_size) 的總大小不得超過 4096 個位元組。

options 引數必須為 0。

權限

呼叫端工作政策必須允許 ZX_POL_NEW_FIFO

傳回值

zx_fifo_create() 會在成功時傳回 ZX_OK。萬一失敗,系統會傳回下列其中一個值。

錯誤

ZX_ERR_INVALID_ARGS out0out1 是無效指標,或是 NULL,或 options 是 0 以外的任何值。

ZX_ERR_OUT_OF_RANGE elem_countelem_size 為零,或者 elem_count * elem_size 大於 4096。

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

另請參閱