RoarAudio/Programmieren/VIO: Unterschied zwischen den Versionen
(BEGIN{}) |
K (→roar_vio_read(): +beschreibung) |
||
Zeile 27: | Zeile 27: | ||
Prototyp: | Prototyp: | ||
ssize_t roar_vio_read (struct roar_vio_calls * vio, void *buf, size_t count); | ssize_t roar_vio_read (struct roar_vio_calls * vio, void *buf, size_t count); | ||
Diese Funktion versucht ''count'' Bytes in den Puffer ''buf'' von ''vio'' ein zu lesen. | |||
Es wird die Anzahl wirklich gelesener Byte zurück gegeben. | |||
Beispiel: | |||
ret = roar_vio_read(&vio, datablock, 512); | |||
Siehe auch: read(2) | |||
=== roar_vio_write() === | === roar_vio_write() === |
Version vom 7. Februar 2010, 05:37 Uhr
RoarAudio Verwendet so genannte Virtuellen Ein-/Ausgabe (VIO) Objekte für (nahezu) alle IO Belange. Dieses Dokument stellt kurz die Verwendung solcher VIO Objekte vor.
VIO Objekt öffnen
Zu Beginn muss ein VIO Objekt deklariert werden. Danach kann es mittels einer Funktion zum öffnen geöffnet werden. Für jeden VIO Objekt Type gibt es im Prinzip mindestens eine Open-Funktion. Ein Teil davon soll hier vorgestellt werden. Ein anderer Teil sollte am besten mittels VIO DSTR API verwendet werden.
Deklaration eins VIO Objektes:
struct roar_vio_calls vio;
Beispiel: Öffnen der Standard Eingabe:
if ( roar_vio_open_fh(&vio, ROAR_STDIN) == -1 ) { return -1; }
Auf VIO Objekt operieren
Auf VIO Objekten kann prinzipiell alles getan werden was auf normalen Dateien (Flache Dateien, Sockets, ...) auch getan werden kann. Im folgenden werden die dazugehörigen Funktionen vorgestellt.
roar_vio_close()
Prototyp:
int roar_vio_close (struct roar_vio_calls * vio);
Diese Funktion schließt ein offenes VIO Objekt.
Beispiel:
riar_vio_close(&vio);
roar_vio_read()
Prototyp:
ssize_t roar_vio_read (struct roar_vio_calls * vio, void *buf, size_t count);
Diese Funktion versucht count Bytes in den Puffer buf von vio ein zu lesen.
Es wird die Anzahl wirklich gelesener Byte zurück gegeben.
Beispiel:
ret = roar_vio_read(&vio, datablock, 512);
Siehe auch: read(2)
roar_vio_write()
Prototyp:
ssize_t roar_vio_write (struct roar_vio_calls * vio, void *buf, size_t count);
roar_vio_lseek()
Prototyp:
off_t roar_vio_lseek (struct roar_vio_calls * vio, off_t offset, int whence);
roar_vio_nonblock()
Prototyp:
int roar_vio_nonblock (struct roar_vio_calls * vio, int state);
roar_vio_sync()
Prototyp:
int roar_vio_sync (struct roar_vio_calls * vio);
roar_vio_ctl()
Prototyp:
int roar_vio_ctl (struct roar_vio_calls * vio, int cmd, void * data);
Siehe Auch
Weblinks
Offizielle Webpräsenz „RoarAudio/Programmieren/VIO”
Dieser Artikel ist leider sehr kurz. Also: Sei mutig und mache aus ihm bitte einen guten Artikel, wenn du mehr zum Thema „RoarAudio/Programmieren/VIO” weißt.