Aktuelle Version |
Dein Text |
Zeile 176: |
Zeile 176: |
| | | |
| == Optionales == | | == Optionales == |
− | === Nicht Blockender Zugriffsmodus === | + | === Non-Blocking === |
− | Wie auf normalen Filehandles in der UNIX Welt kann auch auf VS Objekten ein Nicht-Blockender Modus verwendet werden. Das heißt das Lese- und Schreibbefehle nicht blockieren sondern nur im internen Puffer operieren und somit schneller zurückkehren. Der Nachteil ist das dabei so genannte "short reads" beziehungsweise "short writes" häufiger passieren.
| + | ... |
− | | |
− | Der Nicht Blockierende Modus kann mittels der Funktion roar_vs_blocking() verwendet werden wie im folgenden Beispiel gezeigt:
| |
− | <nowiki>ret = roar_vs_blocking(vss, ROAR_VS_TRUE, &err);</nowiki>
| |
− | | |
− | Der zweite Parameter gibt dabei an ob der Modus gesetzt werden soll (ROAR_VS_TRUE) oder zurückgesetzt (ROAR_VS_FALSE). Natürlich kann er auch gekippt (ROAR_VS_TOGGLE) oder Abgefragt werden (ROAR_VS_ASK).
| |
| | | |
| === Warten auf Stream Ende === | | === Warten auf Stream Ende === |
− | Mit der Funktion roar_vs_sync() kann man auf das Ende des Streams warten.
| + | ... |
− | | |
− | Beispiel:
| |
− | <nowiki>ret = roar_vs_write(vss, buf, len, &err); // letzter Schreibzugriff
| |
− | ret = roar_vs_sync(vss, ROAR_VS_WAIT, &err);
| |
− | // am Stream-Ende
| |
− | ret = roar_vs_close(vss, ROAR_VS_FALSE, &err);</nowiki>
| |
− | | |
− | Es sollte nach dem Aufruf von roar_vs_sync() entweder direkt der Stream geschlossen werden oder erneut geschrieben. In letzterem Fall wird ein Knacken oder ähnliches zu hören sein durch die Unterlaufs bedingte Unterbrechung (engl. "underrun").
| |
| | | |
| === Interface zur Haupt API === | | === Interface zur Haupt API === |