unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-4.1.3)
Page:
Section:
Apropos / Subsearch:
optional field

XDR_ADMIN(3N)                                                    XDR_ADMIN(3N)



NAME
       xdr_getpos,  xdr_inline,  xdrrec_endofrecord,  xdrrec_eof, xdrrec_read-
       bytes, xdrrec_skiprecord, xdr_setpos - library routines for  management
       of the XDR stream

DESCRIPTION
       XDR  library  routines  allow  C programmers to describe arbitrary data
       structures in a machine-independent fashion.  Protocols such as  remote
       procedure  calls (RPC) use these routines to describe the format of the
       data.

       These routines deal specifically with the management of the XDR stream.

   Routines
       The XDR data structure is defined in the RPC/XDR Library Definitions of
       the

       #include <&lt;rpc/xdr.h>&gt;

       u_int xdr_getpos(xdrs)
       XDR *xdrs;

              Invoke  the get-position routine associated with the XDR stream,
              xdrs.  The routine returns an unsigned integer, which  indicates
              the position of the XDR byte stream.  A desirable feature of XDR
              streams is  that  simple  arithmetic  works  with  this  number,
              although the XDR stream instances need not guarantee this.

       long * xdr_inline(xdrs, len)
       XDR *xdrs;
       int len;

              Invoke the in-line routine associated with the XDR stream, xdrs.
              The routine returns a pointer  to  a  contiguous  piece  of  the
              stream's  buffer;  len is the byte length of the desired buffer.
              Note: A pointer is cast to long *.

              Warning: xdr_inline() may return NULL if it  cannot  allocate  a
              contiguous  piece  of a buffer.  Therefore the behavior may vary
              among stream instances; it exists for the sake of efficiency.

       bool_t xdrrec_endofrecord(xdrs, sendnow)
       XDR *xdrs;
       int sendnow;

              This routine can be invoked only  on  streams  created  by  xdr-
              rec_create()  (see xdr_create(3N)).  The data in the output buf-
              fer is marked as a completed record, and the  output  buffer  is
              optionally  written  out  if  sendnow is non-zero.  This routine
              returns TRUE if it succeeds, FALSE otherwise.

       bool_t xdrrec_eof(xdrs)
       XDR *xdrs;
       int empty;

              This routine can be invoked only  on  streams  created  by  xdr-
              rec_create()  (see xdr_create(3N)).  After consuming the rest of
              the current record in the stream, this routine returns  TRUE  if
              the stream has no more input, FALSE otherwise.

       int xdrrec_readbytes(xdrs, addr, nbytes)
       XDR *xdrs;
       caddr_t addr;
       u_int nbytes;

              This  routine  can  be  invoked  only on streams created by xdr-
              rec_create() (see xdr_create(3N)).  It attempts to  read  nbytes
              bytes  from  the  XDR stream into the buffer pointed to by addr.
              On success it returns the number of bytes read.  Returns  -1  on
              failure.  A return value of 0 indicates an end of record.

       bool_t xdrrec_skiprecord(xdrs)
       XDR *xdrs;

              This  routine  can  be  invoked  only on streams created by xdr-
              rec_create() (see xdr_create(3N)).  It tells the XDR implementa-
              tion  that  the rest of the current record in the stream's input
              buffer should be discarded.  This routine  returns  TRUE  if  it
              succeeds, FALSE otherwise.

       bool_t xdr_setpos(xdrs, pos)
       XDR *xdrs;
       u_int pos;

              Invoke  the  set position routine associated with the XDR stream
              xdrs.  The parameter pos  is  a  position  value  obtained  from
              xdr_getpos().  This routine returns 1 if the XDR stream could be
              repositioned, and 0 otherwise.

              Warning: It  is  difficult  to  reposition  some  types  of  XDR
              streams,  so  this  routine may fail with one type of stream and
              succeed with another.

SEE ALSO
       xdr(3N), xdr_complex(3N), xdr_create(3N), xdr_simple(3N)



                                20 January 1990                  XDR_ADMIN(3N)