|
Beschreibung
Mit der Funktion t_snd() sendet der Benutzer Daten.
Der Parameter fd spezifiziert den lokalen Transportendpunkt, über den die Daten gesendet werden sollen.
buf ist ein Zeiger auf die zu sendenden Benutzerdaten.
Mit nbytes spezifiziert der Benutzer die Länge (in Bytes) der zu versendenden Benutzerdaten.
flags wird vom Transportanbieter nicht unterstützt. Deshalb muss beim Aufruf von t_snd() für flags der Wert 0 übergeben werden.
Im Standardfall arbeitet t_snd() im synchronen Modus. Im synchronen Modus wartet (blockiert) t_snd(), falls Flusskontroll-Beschränkungen verhindern, dass zum Zeitpunkt des t_snd()-Aufrufs alle Daten vom Transportanbieter übernommen werden können. Wenn jedoch zuvor mit t_open() oder der POSIX-Funktion fcntl() für den durch fd spezifizierten Transportendpunkt O_NDELAY oder O_NONBLOCK gesetzt wurde, wird t_snd() im asynchronen Modus ausgeführt und beendet sich mit Fehler, falls Beschränkungen der Flusskontrolle bestehen.
Bei erfolgreicher Ausführung gibt der Rückgabewert von t_snd() an, wie viele Daten-Bytes vom Transportanbieter angenommen wurden. Normalerweise wird diese Zahl dem im Parameter nbytes übergebenen Wert entsprechen. Im asynchronen Modus wird jedoch möglicherweise nur ein Teil der zu sendenden Daten vom Transportanbieter angenommen. In diesem Fall liefert t_snd() einen Wert kleiner als nbytes zurück.
Returnwert
Bei erfolgreicher Ausführung liefert t_snd() die Anzahl Bytes zurück, die vom Transportanbieter angenommen wurden.
Im Fehlerfall wird t_errno auf -1 gesetzt, um den Fehler anzuzeigen.
Fehler
TBADDATA
Der Parameter nbytes hat den Wert 0, aber das Versenden von Null-Bytes wird vom darunter liegenden Transportanbieter nicht unterstützt.
TBADF
Der angegebene Dateideskriptor verweist nicht auf einen Transportendpunkt.
TFLOW
O_NDELAY oder O_NONBLOCK wurde gesetzt, aber die Flusskontrolle hat nicht erlaubt, dass der Transportanbieter zu diesem Zeitpunkt Daten annimmt.
TLOOK
Auf dem durch fd übergebenen Transportendpunkt ist ein asynchrones Ereignis eingetreten und erfordert sofortige Bearbeitung.
TNOTSUPPORT
Diese Funktion wird vom darunter liegenden Transportanbieter nicht unterstützt.
TOUTSTATE
Innerhalb einer Sequenz von XTI-Funktionsaufrufen für den Transportendpunkt fd wurde die Funktion an der falschen Stelle aufgerufen.
TSYSERR
Während der Ausführung dieser Funktion ist ein Systemfehler aufgetreten.