vrb_put_all(3)

πŸ“¦ version 0.5.1, in nixos 26.05

πŸ’– vrb_put_all(3) πŸ’–

okay so bestie, this is vrb_put_all(3) from the VRB Programmer’s Manual, and it’s giving β€œput all the data into a VRB or don’t bother” energy πŸ’…βœ¨


🌸 NAME 🌸

vrb_put_all β€” put all data into a VRB


πŸ“š LIBRARY πŸ“š

Link with -lvrb, obviously 🫢


✨ SYNOPSIS ✨

#include <vrb.h>

int vrb_put_all(vrb_p vrb, char *source, size_t size);

πŸ’« DESCRIPTION πŸ’«

vrb_put_all puts caller provided data into a virtual ring buffer only if all the data will fit.

Like, it’s not doing the β€œmaybe a little bit fits” thing. It’s all-or-nothing, and that’s iconic πŸ’…


πŸŽ€ ARGUMENTS πŸŽ€

  • vrb_p vrb β€” specifies which virtual ring buffer we’re talking about, bestie.
  • char *source β€” specifies the location where to copy the data from.
  • size_t size β€” specifies the length of data provided by the caller.

⭐ RETURN VALUE ⭐

  • int β€” if the data fits and is copied, 0 is returned; otherwise -1 is returned.

So yeah: 0 is the slay, -1 is the β€œnope” πŸ’€


πŸ”₯ ERRORS πŸ”₯

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

  • EINVAL β€” an invalid virtual ring buffer pointer was specified. That pointer is not it, fr fr πŸ™ˆ
  • ENOSPC β€” the virtual ring buffer does not have enough space to hold all of the data. No room, no slay 😭

πŸ¦‹ 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_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), vrb_write_min(3)


xoxo, source/version vrb, dated 2002-09-30 β€” bye bestie πŸ’–

πŸ“¦ where this page comes from