Write data to a stream at the given offset.
#include <zircon/syscalls.h> zx_status_t zx_stream_writev_at(zx_handle_t handle, uint32_t options, uint64_t offset, const zx_iovec_t* vector, size_t num_vector, size_t* actual);
zx_stream_writev_at() attempts to write bytes to the stream, starting at the
given offset, from the buffers specified by vector and num_vector.
If successful, the number of bytes actually written are return via actual.
If the options for the stream object contain ZX_STREAM_MODE_APPEND, this
function returns ZX_ERR_BAD_STATE. Consider using [
write data to the stream.
If the write operation would write beyond the end of the stream, the function will attempt to increase the content size of the stream in order to receive the given data. If the resize operation fails after some amount of data was written to the stream, the function will return successfully. If no bytes were written to stream, the operation will return ZX_ERR_FILE_BIG or ZX_ERR_NO_SPACE, as appropriate.
If a NULL actual is passed in, it will be ignored.
Does not advance the seek offset of the stream.
If the contents of vector change during this operation, if any of the buffers overlap, or if any of the buffers overlap vector, the behavior is unspecified.
options is reserved for future use and must be 0.
handle must be of type ZX_OBJ_TYPE_STREAM and have ZX_RIGHT_WRITE.
zx_stream_writev_at() returns ZX_OK on success, and writes into
actual (if non-NULL) the exact number of bytes written.
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_WRITE right.
ZX_ERR_INVALID_ARGS vector is an invalid zx_iovec_t.
ZX_ERR_NOT_FOUND the vector address, or an address specified within vector does not map to address in address space.
ZX_ERR_BAD_STATE the options for the stream contain ZX_STREAM_MODE_APPEND or the underlying data source cannot be written.
ZX_ERR_FILE_BIG the stream has exceeded a predefined maximum size limit.
ZX_ERR_NO_SPACE the underlying storage medium does not have sufficient space.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2020-02-10.