t_sndudata(3N) t_sndudata(3N)
NAME
tsndudata - Dateneinheit versenden
SYNTAX
#include <sys/tiuser.h>
int tsndudata(int fd, struct tunitdata *unitdata);
BESCHREIBUNG
Diese Funktion wird im verbindungslosen Dienst dazu verwendet, um eine
Dateneinheit zu einem anderen Transportbenutzer zu senden. fd kenn-
zeichnet den lokalen Transportendpunkt, über den die Daten gesendet
werden, und unitdata verweist auf eine tunitdata-Struktur, die die
folgenden Elemente enthält:
struct netbuf addr;
struct netbuf opt;
struct netbuf udata;
In unitdata gibt addr die Protokollzieladresse an, opt beschreibt pro-
tokollspezifische Optionen, die der Benutzer mit dieser Anforderung
verbinden will, und udata gibt die zu versendenden Benutzerdaten an.
Der Benutzer hat die Möglichkeit, nicht anzugeben, welche Protokoll-
optionen mit dem Datentransfer verbunden sind, indem er das len-Feld
von opt auf Null setzt. In diesem Fall kann der Transportanbieter
Standard-Optionen verwenden.
Falls das len-Feld von udata Null ist und das Versenden von null Bytes
von der darunterliegenden Schicht nicht angeboten wird, liefert
tsndudata -1 zurück und setzt terrno auf TBADDATA.
Als Standard arbeitet tsndudata im synchronen Modus und wartet, wenn
Flußkontrollbeschränkungen verhindern, daß der Transportanbieter die
Daten zum Aufrufzeitpunkt akzeptiert. Wenn jedoch ONDELAY oder
ONONBLOCK (mittels topen oder fcntl) gesetzt ist, arbeitet
tsndudata im asynchronen Modus und schlägt bei den obigen Bedingungen
fehl.
Wenn tsndudata aus einem ungültigen Zustand heraus aufgerufen wurde
oder wenn die Datengröße in udata die TSDU-Größe (wie sie im Feld tsdu
des Arguments info in einem Aufruf von topen oder tgetinfo zurückge-
liefert wird) überschreitet, generiert der Transportanbieter einen
EPROTO-Protokollfehler (siehe TSYSERR unten). Wenn der Zustand ungül-
tig ist, tritt der Fehler solange nicht auf, bis darauffolgend der
Transportendpunkt referenziert wird.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
t_sndudata(3N) t_sndudata(3N)
FEHLER
Im Fehlerfall wird terrno auf einen der folgenden Werte gesetzt:
TBADF Der angegebene Dateideskriptor verweist nicht auf
einen Transportendpunkt.
TFLOW ONDELAY oder ONONBLOCK wurde gesetzt, aber die Fluß-
kontrolle erlaubte dem Transportanbieter nicht, die
Daten zum Aufrufzeitpunkt zu akzeptieren.
TNOTSUPPORT Diese Funktion wird von dem darunterliegenden Trans-
portanbieter nicht zur Verfügung gestellt.
TSYSERR Während der Ausführung dieser Funktion ist ein System-
fehler aufgetreten.
TBADDATA nbytes ist Null und das Versenden von null Bytes wird
von dem Transportanbieter nicht angeboten.
DIAGNOSE
tsndudata liefert im Erfolgsfall 0 zurück. Im Fehlerfall wird -1
zurückgeliefert und terrno gesetzt, um den Fehler anzuzeigen.
SIEHE AUCH
trcvudata(3N), trcvuderr(3N).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98