摘要
修改跳轉偏移。
宣告
#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()
會將串流的跳轉偏移設為相對於 offset
whence。
如果產生的跳轉偏移為負數或超過最大值
可代表的 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 (如果不是空值)。
錯誤
ZX_ERR_BAD_HANDLE
帳號代碼不是有效的帳號代碼。
ZX_ERR_WRONG_TYPE
帳號代碼不是串流帳號代碼。
ZX_ERR_ACCESS_DENIED
處理常式沒有 ZX_RIGHT_READ
或
右邊是ZX_RIGHT_WRITE
。
ZX_ERR_INVALID_ARGS
whence 是無效的 zx_stream_seek_origin_t
或
輸出結果可能為負數或超過可代表的上限
zx_off_t
。