NAME
vrb_read_min - read a minimum of data into a VRB
LIBRARY
-lvrb
SYNOPSIS
#include <vrb.h>
size_t vrb_read_min(vrb_p vrb, int fd, size_t maxsize, size_t minsize);
DESCRIPTION
vrb_read_min reads a minimum amount of data from a specified open file
descriptor using read(2) into the specified virtual ring buffer until
the specified maximum length has been read, the buffer is full, or end-
of-file, or an error is returned (including EAGAIN or EWOULDBLOCK for a
non-blocking descriptor). If there is insufficient space in the buffer
to read the minimum amount, then read(2) will not be called.
ARGUMENTS
vrb_p vrb
specifies which virtual ring buffer.
int fd
specifies the open file descriptor to read from
size_t maxsize
specifies the maximum length to read, or ~0 for unlimited.
size_t minsize
specifies the minimum length to read.
RETURN VALUE
size_t
If successful, the actual length of data read into the buffer is
returned. If the minimum amount of space was not available to read
into, 0 is returned. If end-of-file occurs, the return value is ~0 and
errno is 0. If an error occurs from read(2), the return value is ~0
and errno is set by read(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 read(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_resize(3),
vrb_space_len(3), vrb_space_ptr(3), vrb_take(3), vrb_uninit(3),
vrb_write(3), vrb_write_min(3), read(2)