Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

t_rcv() - Daten über eine Verbindung empfangen

&pagelevel(4)&pagelevel

#include <xti.h>

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

Beschreibung

Mit der Funktion t_rcv() kann der Transportbenutzer über eine bestehende Verbindung Daten empfangen.

Der Parameter fd identifiziert den lokalen Transportendpunkt, über den die Daten empfangen werden.

buf zeigt auf einen Empfangspuffer, in dem t_rcv() die eintreffenden Benutzerdaten ablegt.

Mit nbytes spezifiziert der Benutzer die Länge dieses Empfangspuffers.

Der Parameter flags wird nicht unterstützt.

Im Standardfall arbeitet t_rcv() im synchronen Modus, d.h. t_rcv() wartet auf die Ankunft weiterer Daten und blockiert, falls im Augenblick keine Daten verfügbar sind.

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, arbeitet t_rcv() im asynchronen Modus und beendet sich mit Fehler, falls keine Daten vorhanden sind. Dabei liefert t_rcv() den Returnwert -1 zurück und setzt t_errno auf TNODATA.

Returnwert

Nach erfolgreicher Ausführung liefert t_rcv() die Anzahl empfangener Bytes zurück.

Im Fehlerfall wird -1 zurückgegeben und t_errno gesetzt, um den Fehler anzuzeigen.

Fehler

TBADF

Der angegebene Dateideskriptor verweist nicht auf einen Transportendpunkt.

TLOOK

Auf dem durch fd übergebenen Transportendpunkt ist ein asynchrones Ereignis eingetreten und erfordert sofortige Bearbeitung.

TNODATA

O_NDELAY oder O_NONBLOCK ist gesetzt worden, aber es sind zurzeit keine Daten vom Transportanbieter verfügbar.

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.

Siehe auch

t_open(), t_snd(), fcntl()