NAME¶
vrb_read - read data into a VRB
LIBRARY¶
-lvrb
SYNOPSIS¶
#include <vrb.h>
size_t vrb_read(vrb_p vrb, int fd,
size_t size);
DESCRIPTION¶
vrb_read reads 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).
ARGUMENTS¶
vrb_p vrb
specifies which virtual ring buffer.
int fd
specifies the open file descriptor to read from
size_t size
specifies the maximum length to read, or
~0 for unlimited.
RETURN VALUE¶
size_t
If successful, the actual length of data read into the buffer 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). Note that this is a different way of returning an end-of-file
condition than
read(2) uses.
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_min(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)