---
name: "roarvio"
section: "7"
platform: "linux"
package: "libroar-dev"
version: "1.0~beta12-4"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/roarvio/7"
---

# roarvio(7)

RoarAudio sound library roarvio - RoarAudio virtual IO layer

## NAME

libroar - RoarAudio sound library

roarvio - RoarAudio virtual IO layer

## SYNOPSIS

 \#include \<roaraudio.h\>

 struct roar\_vio\_calls;

## DESCRIPTION

The RoarAudio VIO interface is RoarAudio's IO abstraction layer. It provides basic IO functions such as read and write independing on the underlaying IO. For Example can you open a plain or a gziped file via the VIO layer. After a successful open both objects behave the same, libroar takes care about the compression in the gzip case.

## TUTORIALS

Tutorials can be found in **roartutvio**(7).

## IMPORTANT FUNCTIONS

There are several important functions. This is a small list of the most important ones.

- **Opening**

  **roar\_vio\_open\_file**(3), **roar\_vio\_open\_fh**(3), **roar\_vio\_open\_stdio**(3), **roar\_vio\_open\_dstr**(3), **roar\_vio\_open\_proto**(3).

  While there are a lot functions important for opening files the most important one is **roar\_vio\_open\_dstr**(3). It opens a stream based on URLs that can point to local files or files on remote machines. It also can handle compression and encryption.

- **Closing**

  [**roar\_vio\_close**(3)](/roar_vio_close/3.md), **roar\_vio\_shutdown**(3)

- **Reading and writing**

  **roar\_vio\_read**(3), **roar\_vio\_write**(3)

- **Seeking and positioning**

  **roar\_vio\_lseek**(3)

- **Non-Blocking and Asyncron IO**

  **roar\_vio\_nonblock**(3), **roar\_vio\_sync**(3), **roar\_vio\_select**(3)

- **Networking and Sockets**

  **roar\_vio\_accept**(3)

- **String handling**

  **roar\_vio\_printf**(3)

## BUGS

A lot...

## SEE ALSO

[**roar-config**(1)](/roar-config/1.md), [**roartypes**(1)](/roartypes/1.md), **roartutvio**(7), [**RoarAudio**(7)](/RoarAudio/7.md).
