摘要
發泡。
宣告
#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
out0 或 out1 是無效指標,或是 NULL,或 options 是 0 以外的任何值。
ZX_ERR_OUT_OF_RANGE
elem_count 或 elem_size 為零,或者 elem_count * elem_size 大於 4096。
ZX_ERR_NO_MEMORY
因記憶體不足而失敗。使用者空間無法以任何方式處理這個錯誤 (極可能) 錯誤。日後的建構作業不會再發生這個錯誤。