zx_stream_readv_at

摘要

在指定偏移處讀取串流中的資料。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_stream_readv_at(zx_handle_t handle,
                               uint32_t options,
                               zx_off_t offset,
                               zx_iovec_t* vectors,
                               size_t num_vectors,
                               size_t* actual);

說明

zx_stream_readv_at() 會嘗試從指定的 偏移 開始,嘗試從串流讀取位元組到向量num_vectors指定的緩衝區。如果成功,系統會透過「實際」傳回實際讀取的位元組數。

如果指定的偏移超出串流的結尾,zx_stream_readv_at() 將成功讀取零位元組。

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

不會將串流的跳轉偏移值提前。

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

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

權限

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

傳回值

zx_stream_readv_at() 會在成功時傳回 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無法讀取基礎資料來源。

另請參閱