---
name: "vrb_write"
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_write"
---

# vrb\_write(3)

write data from a VRB

## NAME

vrb\_write - write data from a VRB

## LIBRARY

**-lvrb**

## SYNOPSIS

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

*size\_t* **vrb\_write***(vrb\_p* **vrb***, int* **fd***, size\_t* **size***);*

## DESCRIPTION

**vrb\_write** writes data to a specified open file descriptor using **[write(2)](/write/2.md)** 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).

## ARGUMENTS

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

*int* **fd**\
 specifies the open file descriptor to write to

*size\_t* **size**\
 specifies the maximum length to write, or **~0** for unlimited (all of buffer).

## RETURN VALUE

*size\_t*\
 If successful, the actual length of data written from the buffer is returned. If no data was available to be written, 0 will be returned. If an error occurs from **[write(2)](/write/2.md),** the return value is ~0 and errno is set by **[write(2)](/write/2.md).**

## 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)](/write/2.md)** uses.

- **EINVAL**

  An invalid virtual ring buffer pointer was specified.

## 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\_take**(3)](/vrb_take/3.md), [**vrb\_uninit**(3)](/vrb_uninit/3.md), [**vrb\_write\_min**(3)](/vrb_write_min/3.md), **[write(2)](/write/2.md)**
