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.