Scroll to navigation

vrb_read(3) VRB Programmer's Manual vrb_read(3)

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)
2002-09-30 vrb