Receive data or expedited data sent over a connection.
X/Open Transport Interface Library (libxti.a)
#include <xti.h>
int t_rcv (
    int fd,
    void *buf,
    unsigned int nbytes,
    int *flags)The t_rcv subroutine receives either normal or expedited data. By default, the t_rcv subroutine operates in synchronous mode and waits for data to arrive if none is currently available. However, if O_NONBLOCK is set via the t_open subroutine or the fcntl parameter, the, t_rcv subroutine executes in asynchronous mode and fails if no data is available. (See the TNODATA error in "Error Codes" below.)
| Item | Description | 
|---|---|
| fd | Identifies the local transport endpoint through which data will arrive. | 
| buf | Points to a receive buffer where user data will be placed. | 
| nbytes | Specifies the size of the receive buffer. | 
| flags | Specifies optional flags. This parameter may be set on return
from the t_rcv subroutine. The possible values are: 
 | 
T_DATAXFER, T_OUTREL.
On successful completion, the t_rcv subroutine returns the number of bytes received. Otherwise, it returns -1 on failure and t_errno is set to indicate the error.
On failure, t_errno is set to one of the following:
| Value | Description | 
|---|---|
| TBADF | The specified file descriptor does not refer to a transport endpoint. | 
| TLOOK | An asynchronous event has occurred on this transport endpoint and requires immediate attention. | 
| TNODATA | O_NONBLOCK was set, but no data is currently available from the transport provider. | 
| TNOTSUPPORT | This subroutine is not supported by the underlying transport provider. | 
| TOUTSTATE | The subroutine was issued in the wrong sequence on the transport endpoint referenced by the fd parameter. | 
| TPROTO | This error indicates that a communication problem has been detected between the X/Open Transport Interface and the transport provider for which there is no other suitable X/Open Transport Interface (t_errno). | 
| TSYSERR | A system error has occurred during execution of this subroutine. |