Query: t_rcv
OS: ultrix
Section: 3xti
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
t_rcv(3xti) t_rcv(3xti) Name t_rcv - receive data or expedited data sent over a connection Syntax #include <xti.h> int t_rcv(fd, buf, nbytes, flags) int fd; char *buf; unsigned nbytes; int *flags; Arguments fd Identifies the local transport endpoint through which data arrives. buf Points to a receive buffer where user data is placed. nbytes Specifies the size of the receive buffer. flags Specifies optional flags. Can be set on return from Description This function receives either normal or expedited data. By default, operates in synchronous mode and waits for data to arrive if none is currently available. However, if O_NONBLOCK is set (by means of or executes in asynchronous mode and fails if no data is available. On return from the call, if T_MORE is set in flags this indicates that there is more data and the current transport service data unit (TSDU) or expedited transport service data (ETSDU) must be received in multiple calls. Each with the T_MORE flag set indicates that another must follow immediately to get more data from the current TSDU. The end of the TSDU is identified by the return of a call with the T_MORE flag not set. If the transport provider does not support the concept of a TSDU as indicated in the info argument on return from or the T_MORE flag is not meaningful and should be ignored. On return, the data returned is expedited data if T_EXPEDITED is set in flags. If the number of bytes of expedited data exceeds nbytes, sets T_EXPEDITED and T_MORE on return from the initial call. Subsequent calls to retrieve the remaining ETSDU have T_EXPEDITED set on return. The end of the ETSDU is identified by the return of a call with the T_MORE flag not set. If expedited data arrives after part of a TSDU has been retrieved, receipt of the remainder of the TSDU is suspended until the ETSDU has been processed. Only after the full ETSDU has been retrieved (T_MORE not set) will the remainder of the TSDU be available to the user. In synchronous mode, the only way for the user to be notified of the arrival of normal or expedited data is to issue this function or check for the T_DATA or T_EXDATA events using the function. -------------------------------------- Parameters Before Call After Call -------------------------------------- fd x / buf x (x) nbytes x / flags / x -------------------------------------- Return Values Upon successful completion, returns the number of bytes received. On failure, a value of -1 is returned, and t_errno is set to indicate the error. Diagnostics On failure, t_errno is set to one of the following: [TBADF] The specified file descriptor does not refer to a transport endpoint. [TOUTSTATE] The function was issued in the wrong sequence on the transport endpoint referenced by fd. [TNODATA] O_NONBLOCK was set, but no data is currently available from the transport provider. [TLOOK] An asynchronous event has occurred on the transport endpoint and requires immediate attention. [TNOTSUPPORT] This function is not supported by the underlying transport provider. [TSYSERR] A system error has occurred during execution of this function. See Also fcntl(2), t_getinfo(3xti), t_look(3xti), t_open(3xti), t_snd(3xti) t_rcv(3xti)