NAME¶
vrb_take - take data from a VRB
LIBRARY¶
-lvrb
SYNOPSIS¶
#include <vrb.h>
vrb_p vrb_take(vrb_p vrb, size_t
size);
DESCRIPTION¶
vrb_take specifies how much data has been obtained from the data portion
of the virtual ring buffer by the caller.
The caller will have called
vrb_data_len(3) and
vrb_data_ptr(3) to
get the length of data in the buffer and a pointer to it, and having extract
some data from the buffer, starting from the pointer obtained and extrating no
more that the length obtained.
ARGUMENTS¶
vrb_p vrb
specifies which virtual ring buffer.
size_t size
specifies the length of data that has been obtained from the virtual ring buffer
by the caller.
RETURN VALUE¶
int
On success, 0 is returned. On error, -1 is returned.
ERRORS¶
If an error is returned, then
errno will have one of the following
values:
- EINVAL
- An invalid virtual ring buffer pointer was specified.
- ENOSPC
- The specified length is greater than the data in the
virtual ring buffer.
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_uninit(3),
vrb_write(3),
vrb_write_min(3)