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() 會將串流的跳轉偏移設為相對於 offset whence

如果產生的跳轉偏移為負數或超過最大值 可代表的 zx_off_tzx_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

另請參閱