Man Linux: Main Page and Category List

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)