Man Linux: Main Page and Category List

NAME

       vrb_write_min - write data from a VRB

LIBRARY

       -lvrb

SYNOPSIS

       #include <vrb.h>

       size_t   vrb_write_min(vrb_p   vrb,  int  fd,  size_t  maxsize,  size_t
       minsize);

DESCRIPTION

       vrb_write_min writes a minimum amount of data to a specified open  file
       descriptor  using write(2) from the specified virtual ring buffer until
       the specified maximum length has been written, the buffer is  full,  or
       an  error  is  returned  (including  EAGAIN  or  EWOULDBLOCK for a non-
       blocking descriptor).  If there is insufficient data in the  buffer  to
       write the minimum amount, then write(2) will not be called.

ARGUMENTS

       vrb_p vrb
       specifies which virtual ring buffer.

       int fd
       specifies the open file descriptor to write to

       size_t maxsize
       specifies the maximum length to write, or ~0 for unlimited.

       size_t minsize
       specifies the minimum length to write.

RETURN VALUE

       size_t
       If  successful,  the  actual  length of data written from the buffer is
       returned.  If the minimum amount  of  data  was  not  available  to  be
       written,  0  is returned.  If an error occurs from write(2), the return
       value is ~0 and errno is set by write(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 write(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(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), write(2)