---
name: "vrb_give"
section: "3"
platform: "linux"
package: "libvrb0-dev"
version: "0.5.1-5.1"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/vrb_give"
---

# vrb\_give(3)

create a new virtual ring buffer

## NAME

vrb\_give - create a new virtual ring buffer

## LIBRARY

**-lvrb**

## SYNOPSIS

**#include \<vrb.h\>**

*vrb\_p* **vrb\_give***(vrb\_p* **vrb***, size\_t* **size***);*

## DESCRIPTION

**vrb\_give** specifies how much data has been placed into the empty portion of the virtual ring buffer by the caller.

The caller will have called **vrb\_empty\_len(3)** and **vrb\_empty\_ptr(3)** to get the length of empty space in the buffer and a pointer to it, and having placed some data into that space, starting from the pointer obtained and placing no more that the length obtained.

## ARGUMENTS

*vrb\_p* **vrb**\
 specifies which virtual ring buffer.

*size\_t* **size**\
 specifies the length of data that has been placed into the virtual ring buffer empty space by the caller.

## RETURN VALUE

*int*\
 On success, 0 is returned. On error, -1 is returned.

## ERRORS

If an error is returned, then *errno* will have one of the following values:

- **EINVAL**

  An invalid virtual ring buffer pointer was specified.

- **ENOSPC**

  The specified length is greater than the empty space in the virtual ring buffer.

## SEE ALSO

[**vrb**(3)](/vrb/3.md), [**vrb\_capacity**(3)](/vrb_capacity/3.md), [**vrb\_data\_len**(3)](/vrb_data_len/3.md), [**vrb\_data\_ptr**(3)](/vrb_data_ptr/3.md), [**vrb\_destroy**(3)](/vrb_destroy/3.md), [**vrb\_get**(3)](/vrb_get/3.md), [**vrb\_get\_min**(3)](/vrb_get_min/3.md), [**vrb\_init**(3)](/vrb_init/3.md), [**vrb\_init\_opt**(3)](/vrb_init_opt/3.md), [**vrb\_is\_empty**(3)](/vrb_is_empty/3.md), [**vrb\_is\_full**(3)](/vrb_is_full/3.md), [**vrb\_is\_not\_empty**(3)](/vrb_is_not_empty/3.md), [**vrb\_is\_not\_full**(3)](/vrb_is_not_full/3.md), [**vrb\_move**(3)](/vrb_move/3.md), [**vrb\_new**(3)](/vrb_new/3.md), [**vrb\_new\_opt**(3)](/vrb_new_opt/3.md), [**vrb\_put**(3)](/vrb_put/3.md), [**vrb\_put\_all**(3)](/vrb_put_all/3.md), [**vrb\_read**(3)](/vrb_read/3.md), [**vrb\_read\_min**(3)](/vrb_read_min/3.md), [**vrb\_resize**(3)](/vrb_resize/3.md), [**vrb\_space\_len**(3)](/vrb_space_len/3.md), [**vrb\_space\_ptr**(3)](/vrb_space_ptr/3.md), [**vrb\_take**(3)](/vrb_take/3.md), [**vrb\_uninit**(3)](/vrb_uninit/3.md), [**vrb\_write**(3)](/vrb_write/3.md), [**vrb\_write\_min**(3)](/vrb_write_min/3.md)
