---
name: "vrb_take"
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_take"
---

# vrb\_take(3)

take data from a VRB

## NAME

vrb\_take - take data from a VRB

## LIBRARY

**-lvrb**

## SYNOPSIS

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

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

## DESCRIPTION

**vrb\_take** specifies how much data has been obtained from the data portion of the virtual ring buffer by the caller.

The caller will have called **[vrb\_data\_len(3)](/vrb_data_len/3.md)** and **[vrb\_data\_ptr(3)](/vrb_data_ptr/3.md)** to get the length of data in the buffer and a pointer to it, and having extract some data from the buffer, starting from the pointer obtained and extrating 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 obtained from the virtual ring buffer 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 data 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\_give**(3)](/vrb_give/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\_uninit**(3)](/vrb_uninit/3.md), [**vrb\_write**(3)](/vrb_write/3.md), [**vrb\_write\_min**(3)](/vrb_write_min/3.md)
