ZX_stream_seek

摘要

修改跳轉偏移。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_stream_seek(zx_handle_t handle,
                           zx_stream_seek_origin_t whence,
                           int64_t offset,
                           zx_off_t* out_seek);

說明

zx_stream_seek() 會將串流的搜尋偏移值設為相對於 whenoffset

如果產生的跳轉偏移值為負數或超過可代表的 zx_off_t 上限,zx_stream_seek() 會傳回 ZX_ERR_INVALID_ARGS

產生的搜尋位移可能會超出串流的結尾。設定這類跳轉位移不會導致 zx_stream_seek() 傳回錯誤,但嘗試在該搜尋位移處讀取或寫入資料可能會產生錯誤。

問題

ZX_STREAM_SEEK_ORIGIN_START 可設定相對於串流開始的搜尋偏移。

ZX_STREAM_SEEK_ORIGIN_CURRENT 可設定相對於串流目前查詢偏移的搜尋偏移值。

ZX_STREAM_SEEK_ORIGIN_END 會根據串流內容大小定義,設定相對於串流結尾的搜尋偏移值。

權限

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

傳回值

zx_stream_seek() 會在成功時傳回 ZX_OK,並將結果 (相對於串流開始) 的跳轉偏移寫入 out_offset (如果非 NULL)。

錯誤

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

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

ZX_ERR_ACCESS_DENIED 處理常式沒有 ZX_RIGHT_READZX_RIGHT_WRITE 權限。

ZX_ERR_INVALID_ARGS ce 是無效的 zx_stream_seek_origin_t,否則產生的搜尋將會是負數,或超過代表性 zx_off_t 的上限。

另請參閱