zx_stream_readv

摘要

在目前的跳轉偏移點讀取串流的資料。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_stream_readv(zx_handle_t handle,
                            uint32_t options,
                            zx_iovec_t* vectors,
                            size_t num_vectors,
                            size_t* actual);

說明

zx_stream_readv() 會嘗試從串流讀取位元組,從 目前的搜尋偏移值,位於 vectorsnum_vectors 指定的緩衝區中。 如果成功,實際讀取的位元組數會透過 actual 傳回。

如果目前的跳轉偏移量超過串流結束的時間,zx_stream_readv() 成功讀取零位元組

如果傳入 NULL actual,系統就會忽略該參數。

將串流的跳轉偏移依實際讀取的位元組數提前。 如果讀取失敗,跳轉位移可以維持不變,或 已變更為未指定的值

在這項作業期間,如果向量的內容發生變化 (若有任何緩衝區) 重疊,或者如果有任何緩衝區與向量重疊,系統就會未指定行為。

options 保留給日後使用,且必須為 0。

權限

handle 必須是 ZX_OBJ_TYPE_STREAM 類型,且包含 ZX_RIGHT_READ

傳回值

zx_stream_readv() 會在成功時傳回 ZX_OK,並將寫入 「actual」 (非空值) 的確切讀取位元組數。

錯誤

ZX_ERR_BAD_HANDLE 帳號代碼不是有效的帳號代碼。

ZX_ERR_WRONG_TYPE 帳號代碼不是串流帳號代碼。

ZX_ERR_ACCESS_DENIED 帳號代碼沒有 ZX_RIGHT_READ 的權利。

ZX_ERR_INVALID_ARGS 向量是無效的 zx_iovec_t,或選項為 非零。

ZX_ERR_NOT_FOUND向量地址,或是指定的地址 向量不會對應至位址空間中的地址。

ZX_ERR_BAD_STATE 無法讀取基礎資料來源。

另請參閱