Summary
Modify the seek offset.
Declaration
#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);
Description
zx_stream_seek()
sets the seek offset of the stream to offset relative to
whence.
If the resulting seek offset were to be negative or exceed the maximum
representable zx_off_t
, zx_stream_seek()
returns ZX_ERR_INVALID_ARGS
.
The resulting seek offset might extend beyond the end of the stream. Setting
such a seek offset does not cause zx_stream_seek()
to return an error, but
attempting to read or write data at that seek offset might generate an error.
WHENCE
ZX_STREAM_SEEK_ORIGIN_START
set the seek offset relative to the start of
the stream.
ZX_STREAM_SEEK_ORIGIN_CURRENT
set the seek offset relative to the current
seek offset of the stream.
ZX_STREAM_SEEK_ORIGIN_END
set the seek offset relative to the end of the
stream, as defined by the content size of the stream.
Rights
handle must be of type ZX_OBJ_TYPE_STREAM
and have ZX_RIGHT_WRITE
or have ZX_RIGHT_WRITE
.
Return value
zx_stream_seek()
returns ZX_OK
on success, and writes the resulting seek
offset, relative to the start of the stream, into out_offset (if non-NULL).
Errors
ZX_ERR_BAD_HANDLE
handle is not a valid handle.
ZX_ERR_WRONG_TYPE
handle is not a stream handle.
ZX_ERR_ACCESS_DENIED
handle does not have the ZX_RIGHT_READ
or
ZX_RIGHT_WRITE
right.
ZX_ERR_INVALID_ARGS
whence is an invalid zx_stream_seek_origin_t
or
the resulting seek would be negative or exceed the maximum representable
zx_off_t
.