t_rcvudata(3)t_rcvudata(3)NAMEt_rcvudata() - receive a data unit from remote transport provider user
The function is used in connectionless-mode to receive a data unit from
a remote transport provider user. The argument fd identifies the local
transport endpoint through which data will be received. unitdata holds
information associated with the received data unit. flags is set on
return to indicate that the complete data unit was not received. The
argument unitdata points to a structure containing the following mem‐
The type structure is defined in the or header file. This structure,
which is used to define buffer parameters, has the following members:
maximum byte length of the data buffer
actual byte length of data written to buffer
points to buffer location
The maxlen field of addr, opt and udata must be set before calling this
function to indicate the maximum size of the buffer for each.
On return from this call, addr specifies the protocol address of the
sending user, opt identifies protocol-specific options that were asso‐
ciated with this data unit, and udata specifies the user data that was
By default, executes in the synchronous operating mode. The function
waits for data to arrive at the transport endpoint specified by fd
before returning control to the transport user who called this func‐
tion. However, when the transport endpoint, specified by the fd param‐
eter, has the option set by or function, the function executes in asyn‐
chronous mode. In asynchronous mode, when a data unit is unavailable,
control is immediately returned to the caller.
If the buffer defined in the udata field of unitdata is not large
enough to hold the current data unit, the buffer will be filled and
T_MORE will be set in flags on return to indicate that another should
be called to retrieve the rest of the data unit. Subsequent calls to
will return zero for the length of the address and options until the
full data unit has been received.
is not fork-safe.
Upon successful completion, a value of 0 is returned. Otherwise, a
value of −1 is returned and is set to indicate the error.
On failure, is set to one of the following:
[TBADF] The specified file descriptor does not refer to a
[TNODATA] was set, but no data units are currently available
from the transport provider.
[TBUFOVFLW] The number of bytes allocated for the incoming pro‐
tocol address or protocol options is not sufficient
to store the information. The unit data informa‐
tion normally returned in unitdata is discarded.
[TLOOK] An asynchronous event has occurred on this trans‐
port endpoint required immediate attention.
[TNOTSUPPORT] This function is not supported by the underlying
[TOUTSTATE] (XTI only) The function was issued in the wrong
sequence on the transport endpoint referenced by
[TSYSERR] A system error occurred during execution of this
[TPROTO] (XTI only) This error indicates that a communica‐
tion problem has been detected between XTI and the
transport provider for which there is no other
suitable XTI (
SEE ALSOfcntl(2), t_alloc(3), t_open(3), t_optmgmt(3), t_rcvuderr(3), t_sndu‐