摘要
修改跳轉偏移。
宣告
#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。