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() 會嘗試從目前跳轉位移,從向量num_vectors指定的緩衝區中讀取串流的位元組。如果成功,系統會透過「實際」傳回實際讀取的位元組數。

如果目前跳轉偏移超出串流的結尾,zx_stream_readv() 將成功讀取零位元組。

如果傳入 NULL「實際」,系統會忽略此值。

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

如果在此作業期間,「向量」的內容有重疊、任何緩衝區重疊,或是有任何緩衝區與「向量」重疊,系統就會未指定行為。

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

權限

handle 必須是 ZX_OBJ_TYPE_STREAM 類型,且具有 ZX_RIGHT_READ

傳回值

zx_stream_readv() 會在成功時傳回 ZX_OK,如為實際 (非 NULL) 讀取到確切讀取的位元組數。

錯誤

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無法讀取基礎資料來源。

另請參閱