vrb_read_min3
Read a minimum of data into a vrb
Usage
#include <vrb.h>
size_t vrb_read_min(vrb_p vrb, int fd, size_t maxsize, size_t minsize);
Library
-lvrb
Overview
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.
Releases
Unchanged in 2 releases since Debian 6.0 (Squeeze).