xdr_admin(3N) LIBRARY FUNCTIONS xdr_admin(3N)
NAME
xdr_admin: xdr_getpos, xdr_inline, xdrrec_eof, xdr_setpos -
library routines for external data representation
DESCRIPTION
XDR library routines allow C programmers to describe arbi-
trary 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
See rpc(3N) for the definition of the XDR data structure.
#include <rpc/xdr.h>
u_int
xdr_getpos(const XDR *xdrs);
A macro that invokes the get-position routine associ-
ated 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.
Therefore, applications written for portability should
not depend on this feature.
long *
xdr_inline(XDR *xdrs; const int len);
A macro that invokes 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:
pointer is cast to long *.
Warning: xdr_inline may return NULL (0) 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, and applications written for
portability should not depend on this feature.
bool_t
xdrrec_eof(XDR *xdrs);
This routine can be invoked only on streams created by
xdrrec_create. After consuming the rest of the current
record in the stream, this routine returns 1 if the
stream has no more input, 0 otherwise.
bool_t
xdr_setpos(XDR *xdrs, const u_int pos);
A macro that invokes the set position routine associ-
ated with the XDR stream xdrs. The parameter pos is a
position value obtained from xdr_getpos. This routine
1
xdr_admin(3N) LIBRARY FUNCTIONS xdr_admin(3N)
returns 1 if the XDR stream was 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. Therefore, applica-
tions written for portability should not depend on this
feature.
SEE ALSO
rpc(3N), xdr_complex(3N), xdr_create(3N), xdr_simple(3N).
2