Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ t_snd(3N) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

t_snd(3N)                                                         t_snd(3N)

NAME
     tsnd - Daten oder Vorrangdaten über eine Verbindung senden

SYNTAX
     #include <sys/tiuser.h>

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

BESCHREIBUNG
     Diese Funktion ist für das Senden von Daten bzw. Vorrangdaten zustän-
     dig. fd kennzeichnet den lokalen Transportendpunkt, über den die Daten
     gesendet werden sollen, buf verweist auf die Benutzerdaten, nbytes
     gibt die Anzahl Bytes der zu versendenden Benutzerdaten an, und flags
     spezifiziert optionale Flags, die unten beschrieben werden.

     Als Standard arbeitet tsnd im synchronen Modus und wartet, ob
     Beschränkungen der Flußkontrolle dazu führen, daß die Daten nicht zum
     Zeitpunkt des Aufrufs von dem Transportanbieter angenommen werden kön-
     nen. Wenn jedoch ONDELAY oder ONONBLOCK gesetzt ist (mittels topen
     oder fcntl), arbeitet tsnd im asynchronen Modus und schlägt sofort
     fehl, wenn Beschränkungen in der Flußkontrolle bestehen.

     Selbst wenn keine Flußkontrollbeschränkungen bestehen, wartet tsnd,
     wenn interne Betriebsmittel von STREAMS nicht verfügbar sind, ungeach-
     tet der Belegung von ONDELAY oder ONONBLOCK.

     Bei erfolgreicher Ausführung liefert tsnd die Anzahl Bytes zurück,
     die von dem Transportanbieter angenommen wurden. Normalerweise wird
     diese Zahl gleich der Zahl Bytes sein, die in nbytes angegeben wurde.
     Wenn jedoch ONDELAY oder ONONBLOCK gesetzt ist, ist es möglich, daß
     nur ein Teil der Daten von dem Transportanbieter akzeptiert wird. In
     diesem Fall setzt tsnd TMORE für die versendeten Daten (siehe unten)
     und liefert einen Wert zurück, der kleiner als nbytes ist. Wenn nbytes
     Null ist und das Senden von Null Bytes nicht von dem darunterliegenden
     Transportanbieter unterstützt wird, liefert tsnd() -1 zurück, wobei
     terrno auf TBADDATA gesetzt wird. Ein Rückgabewert Null zeigt an, daß
     die Anfrage zum Versenden einer Datennachricht der Länge Null zum
     Transportanbieter geschickt wurde.

     Wenn TEXPEDITED in flags gesetzt ist, werden die Daten als Vorrangda-
     ten versendet und von dem Transportanbieter dementsprechend behandelt.














Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

t_snd(3N)                                                         t_snd(3N)

     Wenn TMORE in flags gesetzt ist oder wie oben gesetzt wurde, wird
     eine Meldung zum Transportanbieter geschickt, daß die Transport-
     dienst-Dateneinheit (TSDU) oder die vorrangige Transportdienst-Daten-
     einheit (ETSDU) durch mehrere Aufrufe von tsnd versendet wird. Jeder
     Aufruf von tsnd mit gesetztem TMORE-Flag gibt an, daß ein weiterer
     Aufruf von tsnd mit weiteren Daten für die aktuelle TSDU folgt. Das
     Ende der TSDU (oder ETSDU) ist durch ein tsnd gekennzeichnet, bei dem
     das TMORE-Flag nicht gesetzt wurde. Die Verwendung von TMORE erlaubt
     einem Benutzer, große logisch zusammengehörende Daten aufzubrechen,
     ohne die logischen Grenzen dieser Dateneinheiten am anderen Ende der
     Verbindung zu verlieren. Das Flag sagt nichts darüber aus, wie die
     Daten unterhalb der Transportschnittstelle für den Datentransfer
     gepackt werden. Wenn der Transportanbieter das Konzept der TSDU nicht
     unterstützt, was in dem Argument info bei der Rückkehr von topen oder
     tgetinfo angezeigt wird, ist das Flag TMORE nicht von Bedeutung und
     sollte deshalb ignoriert werden.

     Die Größe einer TSDU oder ETSDU darf die Grenzen des Transportanbie-
     ters, die von topen oder tgetinfo zurückgeliefert werden, nicht
     überschreiten. Wenn die Grenze überschritten wird, tritt der Fehler
     TSYSERR mit dem Systemfehler EPROTO auf. Das tsnd darf jedoch nicht
     fehlschlagen, weil EPROTO-Fehler nicht sofort gemeldet werden dürfen.
     In diesem Fall schlägt ein nachfolgender Aufruf, der auf den lokalen
     Transportendpunkt zugreift, mit dem entsprechenden TSYSERR fehl.

     Wenn tsnd im Zustand TIDLE durchgeführt wird, kann der Transport-
     anbieter die Daten stillschweigend löschen. Falls tsnd in jedem ande-
     ren als dem Zustand TDATAXFER durchgeführt wird, in TINREL oder
     TIDLE, erzeugt der Transportanbieter einen Fehler TSYSERR mit dem
     Systemfehler EPROTO (der in der oben beschriebenen Art und Weise
     gemeldet werden kann).

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 hat nicht erlaubt, daß der Transportanbieter
                     zu diesem Zeitpunkt Daten akzeptiert.

     TNOTSUPPORT     Diese Funktion wird von dem darunterliegenden Trans-
                     portanbieter nicht unterstützt.

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

     TBADDATA        nbytes ist Null, aber das Versenden von Null Bytes
                     wird von dem Transportanbieter nicht angeboten.




Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

t_snd(3N)                                                         t_snd(3N)

DIAGNOSE
     Bei erfolgreicher Durchführung liefert tsnd die Anzahl Bytes zurück,
     die von dem Transportanbieter angenommen wurden. Im Fehlerfall wird -1
     zurückgeliefert und terrno gesetzt, um den Fehler anzuzeigen.

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















































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

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