摘要
從 FF 讀取資料。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_fifo_read(zx_handle_t handle,
                         size_t elem_size,
                         void* data,
                         size_t count,
                         size_t* actual_count);
說明
zx_fifo_read() 會嘗試讀取 FFF 的 count 個元素
定義為資料。
如果數量不足,可能會讀取的元素數量更少 元素來執行整個要求。開啟 實際讀取的元素是透過 actual_count 傳回。
由 elem_size 指定的元素大小必須與元素大小相符
傳入 zx_fifo_create()。
data 大小不得小於 count * elem_size 位元組。
actual_count 值可以為 NULL。這在閱讀
單一元素:如果 count 為 1,且 zx_fifo_read() 傳回 ZX_OK,
actual_count 值保證為 1,因此您可以放心忽略。
讀取零個元素是不合法的行為。
權限
handle 必須是 ZX_OBJ_TYPE_FIFO 類型,且包含 ZX_RIGHT_READ。
傳回值
zx_fifo_read() 會在成功時傳回 ZX_OK,並傳回
透過 actual_count 讀取的元素數量 (至少一項)。
錯誤
ZX_ERR_BAD_HANDLE  帳號代碼不是有效的帳號代碼。
ZX_ERR_WRONG_TYPE  帳號代碼不是簡單的帳號代碼。
ZX_ERR_INVALID_ARGS  資料 是無效的指標或 actual_count
是無效的指標。
ZX_ERR_OUT_OF_RANGE  count 為零或 elem_size 不等於
轉換成 FFF 的元素大小
ZX_ERR_ACCESS_DENIED  帳號代碼沒有 ZX_RIGHT_READ。
ZX_ERR_PEER_CLOSED 擊球的另一面已經關上了。
ZX_ERR_SHOULD_WAIT 敵米歐沒有空。