Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ t_rcv(3N) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

t_rcv(3N)                                                         t_rcv(3N)

NAME
     trcv - Daten oder Vorrangdaten über eine Verbindung empfangen

SYNTAX
     #include <sys/tiuser.h>

     int trcv(int fd, char *buf, unsigned nbytes, int *flags);

BESCHREIBUNG
     Diese Funktion ist für den Empfang von normalen oder vorrangigen Daten
     zuständig. fd kennzeichnet den lokalen Transportendpunkt, über den
     Daten ankommen, buf zeigt auf einen Empfangspuffer, wo die Benutzerda-
     ten abgelegt werden, und nbytes gibt die Größe des Empfangspuffers an.
     flags ist bei der Rückkehr von trcv gesetzt und spezifiziert optio-
     nale Flags, die unten beschrieben werden.

     trcv arbeitet standardmäßig im synchronen Modus und wartet auf die
     Ankunft weiterer Daten, falls im Augenblick keine Daten vorhanden
     sind. Wenn jedoch ONDELAY oder ONONBLOCK gesetzt wurde (mittels
     topen oder fcntl), arbeitet trcv im asynchronen Modus und schlägt
     fehl, wenn keine Daten vorhanden sind (siehe unten bei TNODATA).

     Wenn bei der Rückkehr TMORE in flags gesetzt worden ist, bedeutet
     das, daß weitere Daten vorhanden sind und daß die aktuelle Transport-
     dienst-Dateneinheit (TSDU) bzw. die vorrangige Dienstdateneinheit
     (ETSDU) durch mehrere trcv-Aufrufe geholt werden muß. Jedes trcv mit
     gesetztem TMORE-Flag heißt, daß ein weiterer trcv-Aufruf folgen muß,
     um weitere Daten für die aktuelle TSDU zu bekommen. Das Ende einer
     TSDU ist durch einen trcv-Aufruf feststellbar, bei dem das Flag
     TMORE nicht gesetzt ist. Wenn der Transportanbieter das Konzept der
     TSDU nicht anbietet, wie das im Argument info bei der Rückkehr von
     topen oder tgetinfo angezeigt wird, ist die Belegung des Flags
     TMORE nicht von Bedeutung und sollte ignoriert werden.

     Wenn das Flag TEXPEDITED bei der Rückkehr in flags gesetzt ist, han-
     delt es sich um Vorrangdaten. Wenn die Anzahl der Bytes der Vorrangda-
     ten den Wert nbytes überschreitet, setzt trcv beim ersten Aufruf
     TEXPEDITED und TMORE. Nachfolgende Aufrufe, um den restlichen Teil
     der ETSDU zu bekommen, erhalten bei der Rückkehr TEXPEDITED gesetzt.
     Das Ende einer ETSDU wird von trcv durch ein nichtgesetztes Flag
     TMORE angezeigt.

     Wenn Vorrangdaten ankommen, nachdem Teile einer TSDU empfangen wurden,
     wird der Empfang des restlichen Teils der TSDU solange verzögert, bis
     die ETSDU verarbeitet worden ist. Erst nachdem die vollständige ETSDU
     eingegangen ist (TMORE nicht gesetzt), ist der restliche Teil der
     TSDU für den Benutzer verfügbar.








Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

t_rcv(3N)                                                         t_rcv(3N)

FEHLER
     Im Fehlerfall wird terrno auf einen der folgenden Werte gesetzt:

     TBADF           Der angegebene Dateideskriptor verweist nicht auf
                     einen Transportendpunkt.

     TNODATA         ONDELAY oder ONONBLOCK wurde gesetzt, aber es sind
                     im Augenblick keine Daten von dem Transportanbieter
                     verfügbar.

     TLOOK           Auf diesem Transportendpunkt ist ein asynchrones
                     Ereignis aufgetreten, das sofortige Bearbeitung erfor-
                     dert.

     TNOTSUPPORT     Diese Funktion wird von dem darunterliegenden Trans-
                     portanbieter nicht angeboten.

     TSYSERR         Während der Ausführung dieser Funktion ist ein System-
                     fehler aufgetreten.

DIAGNOSE
     Bei erfolgreicher Beendigung liefert trcv die Anzahl empfangener
     Bytes zurück. Im Fehlerfall wird -1 zurückgegeben und terrno gesetzt,
     um den Fehler anzuzeigen.

SIEHE AUCH
     topen(3N), tsnd(3N).



























Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026