摘要
修改跳轉偏移。
宣告
#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()
會將串流的搜尋偏移值設為相對於 when 的 offset。
如果產生的跳轉偏移值為負數或超過可代表的 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_WRITE
或 ZX_RIGHT_WRITE
。
傳回值
zx_stream_seek()
會在成功時傳回 ZX_OK
,並將結果 (相對於串流開始) 的跳轉偏移寫入 out_offset (如果非 NULL)。
錯誤
ZX_ERR_BAD_HANDLE
帳號代碼不是有效的帳號代碼。
ZX_ERR_WRONG_TYPE
帳號代碼不是串流帳號代碼。
ZX_ERR_ACCESS_DENIED
處理常式沒有 ZX_RIGHT_READ
或 ZX_RIGHT_WRITE
權限。
ZX_ERR_INVALID_ARGS
ce 是無效的 zx_stream_seek_origin_t
,否則產生的搜尋將會是負數,或超過代表性 zx_off_t
的上限。