t_sndudata(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

t_sndudata(3c)

Standard C Library Functions                                    t_sndudata(3C)



NAME
       t_sndudata - send a data unit

SYNOPSIS
       #include <xti.h>

       int t_sndudata(int fd, const struct t_unitdata *unitdata);

DESCRIPTION
       This  routine  is part of the XTI interfaces which evolved from the TLI
       interfaces. XTI represents the future evolution  of  these  interfaces.
       However,  TLI  interfaces are supported for compatibility. When using a
       TLI routine that has the same name as  an  XTI  routine,  the  tiuser.h
       header file must be used. Refer to the TLI  COMPATIBILITY section for a
       description of differences between the two interfaces.


       This function is used in connectionless-mode to send  a  data  unit  to
       another  transport user. The argument fd identifies the local transport
       endpoint through which data will be sent,  and  unitdata  points  to  a
       t_unitdata structure containing the following members:

         struct netbuf addr;
         struct netbuf opt;
         struct netbuf udata;



       In  unitdata,  addr  specifies  the protocol address of the destination
       user, opt identifies options that the user wants associated  with  this
       request,  and  udata  specifies  the user data to be sent. The user may
       choose not to specify what protocol options  are  associated  with  the
       transfer  by  setting  the  len field of opt to zero. In this case, the
       provider uses the option values currently set  for  the  communications
       endpoint.


       If  the  len  field of udata is zero, and sending of zero octets is not
       supported by the underlying transport service,  the  t_sndudata()  will
       return -1 with t_errno set to TBADDATA.


       By  default,  t_sndudata() operates in synchronous mode and may wait if
       flow control restrictions prevent the data from being accepted  by  the
       local  transport  provider  at  the  time the call is made. However, if
       O_NONBLOCK  is  set  by  means  of   t_open(3C)  or  fcntl(2),  t_sndu‐
       data()  will execute in asynchronous mode and will fail under such con‐
       ditions. The process can arrange to be notified of the clearance  of  a
       flow control restriction by means of either t_look(3C) or the EM inter‐
       face.


       If the amount of data specified in  udata  exceeds  the  TSDU  size  as
       returned in the tsdu field of the info argument of t_open(3C) or t_get‐
       info(3C), a TBADDATA error will be generated. If t_sndudata() is called
       before  the  destination user has activated its transport endpoint (see
       t_bind(3C)), the data unit may be discarded.


       If it is not possible for the transport provider to immediately  detect
       the conditions that cause the errors TBADADDR and TBADOPT, these errors
       will alternatively be returned by t_rcvuderr. Therefore, an application
       must be prepared to receive these errors in both of these ways.


       If  the  call  is  interrupted,  t_sndudata() will return EINTR and the
       datagram will not be sent.

RETURN VALUES
       Upon successful completion, a value of  0  is  returned.  Otherwise,  a
       value of -1 is returned and t_errno is set to indicate an error.

VALID STATES
       T_IDLE.

ERRORS
       On failure, t_errno is set to one of the following:

       TBADADDR       The  specified protocol address was in an incorrect for‐
                      mat or contained illegal information.


       TBADDATA       Illegal amount of data.  A  single  send  was  attempted
                      specifying  a  TSDU  greater  than that specified in the
                      info argument, or a send of a zero byte TSDU is not sup‐
                      ported by the provider.


       TBADF          The specified file descriptor does not refer to a trans‐
                      port endpoint.


       TBADOPT        The specified options were in  an  incorrect  format  or
                      contained illegal information.


       TFLOW          O_NONBLOCK  was set, but the flow control mechanism pre‐
                      vented the transport provider from accepting any data at
                      this time.


       TLOOK          An  asynchronous  event  has  occurred on this transport
                      endpoint.


       TNOTSUPPORT    This function is not supported by the underlying  trans‐
                      port provider.


       TOUTSTATE      The  communications  endpoint referenced by fd is not in
                      one of the states in which a call to  this  function  is
                      valid.


       TPROTO         This  error  indicates  that a communication problem has
                      been detected between XTI and the transport provider for
                      which there is no other suitable XTI error (t_errno).


       TSYSERR        A  system  error  has  occurred during execution of this
                      function.


TLI COMPATIBILITY
       The XTI and TLI interface definitions have common names but use differ‐
       ent  header files. This, and other semantic differences between the two
       interfaces are described in the subsections below.

   Interface Header
       The XTI interfaces use the header file, xti.h.  TLI  interfaces  should
       not use this header. They should use the header:
         #include <tiuser.h>

   Error Description Values
       The  t_errno  values that can be set by the XTI interface and cannot be
       set by the TLI interface are:
         TPROTO
         TBADADDR
         TBADOPT
         TLOOK
         TOUTSTATE

   Notes
       Whenever this function fails with t_error  set  to  TFLOW,   O_NONBLOCK
       must have been set.

   Option Buffers
       The format of the options in an opt buffer is dictated by the transport
       provider. Unlike the XTI interface, the TLI interface does not fix  the
       buffer format.

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ MT LevelSafe


SEE ALSO
       fcntl(2),   t_alloc(3C),   t_bind(3C),   t_error(3C),    t_getinfo(3C),
       t_look(3C), t_open(3C), t_rcvudata(3C), t_rcvuderr(3C), attributes(7)



Oracle Solaris 11.4               17 Aug 2018                   t_sndudata(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3