NAME¶
vrb_write_min - write data from a VRB
LIBRARY¶
-lvrb
SYNOPSIS¶
#include <vrb.h>
size_t vrb_write_min(vrb_p vrb, int
fd, size_t maxsize, size_t
minsize);
DESCRIPTION¶
vrb_write_min writes a minimum amount of data to a specified open file
descriptor using
write(2) from the specified virtual ring buffer until
the specified maximum length has been written, the buffer is full, or an error
is returned (including EAGAIN or EWOULDBLOCK for a non-blocking descriptor).
If there is insufficient data in the buffer to write the minimum amount, then
write(2) will not be called.
ARGUMENTS¶
vrb_p vrb
specifies which virtual ring buffer.
int fd
specifies the open file descriptor to write to
size_t maxsize
specifies the maximum length to write, or
~0 for unlimited.
size_t minsize
specifies the minimum length to write.
RETURN VALUE¶
size_t
If successful, the actual length of data written from the buffer is returned. If
the minimum amount of data was not available to be written, 0 is returned. If
an error occurs from
write(2), the return value is ~0 and errno is set
by
write(2).
ERRORS¶
If an error is returned, then
errno will have one of the following
values:
- 0
- An end-of-file has occurred. Note that this is a different
way of returning an end-of-file condition than write(2) uses.
- EINVAL
- An invalid virtual ring buffer pointer was specified.
SEE ALSO¶
vrb(3),
vrb_capacity(3),
vrb_data_len(3),
vrb_data_ptr(3),
vrb_destroy(3),
vrb_get(3),
vrb_get_min(3),
vrb_give(3),
vrb_init(3),
vrb_init_opt(3),
vrb_is_empty(3),
vrb_is_full(3),
vrb_is_not_empty(3),
vrb_is_not_full(3),
vrb_move(3),
vrb_new(3),
vrb_new_opt(3),
vrb_put(3),
vrb_put_all(3),
vrb_read(3),
vrb_read_min(3),
vrb_resize(3),
vrb_space_len(3),
vrb_space_ptr(3),
vrb_take(3),
vrb_uninit(3),
vrb_write(3),
write(2)