xdr_simple(3N) xdr_simple(3N)
NAME
xdrsimple: xdrbool, xdrchar, xdrdouble, xdrenum, xdrfloat,
xdrfree, xdrint, xdrlong, xdrshort, xdruchar, xdrulong,
xdrushort, xdrvoid - library routines for external data representa-
tion
DESCRIPTION
XDR library routines allow C programmers to describe simple 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 require the creation of XDR handles [see
xdrcreate(3N)].
If you use one of the XDR functions, you must link the libnsl library
at compilation (cc -lnsl).
Routines
See rpc(3N) for the definition of the XDR data structure.
#include <rpc/xdr.h>
boolt
xdrbool(XDR *xdrs, boolt *bp);
xdrbool translates between booleans (C integers) and their
external representations. When encoding data, this filter pro-
duces values of either 1 or 0. This routine returns 1 if it
succeeds, 0 otherwise.
boolt
xdrchar(XDR *xdrs, char *cp);
xdrchar translates between C characters and their external rep-
resentations. This routine returns 1 if it succeeds, 0 otherwise.
Note: encoded characters are not packed, and occupy 4 bytes each.
For arrays of characters, it is worthwhile to consider xdrbytes,
xdropaque or xdrstring [see xdrbytes, xdropaque and
xdrstring in xdrcomplex(3N)].
boolt
xdrdouble(XDR *xdrs, double *dp);
xdrdouble translates between C double precision numbers and
their external representations. This routine returns 1 if it
succeeds, 0 otherwise.
Page 1 Reliant UNIX 5.44 Printed 11/98
xdr_simple(3N) xdr_simple(3N)
boolt
xdrenum(XDR *xdrs, enumt *ep);
xdrenum translates between C enums (actually integers) and their
external representations. This routine returns 1 if it succeeds,
0 otherwise.
boolt
xdrfloat(XDR *xdrs, float *fp);
xdrfloat translates between C floats and their external repre-
sentations. This routine returns 1 if it succeeds, 0 otherwise.
void
xdrfree(xdrproct proc, char *objp);
Generic freeing routine. The first argument is the XDR routine
for the object being freed. The second argument is a pointer to
the object itself.
Note: the pointer passed to this routine is not freed, but what
it points to is freed (recursively).
boolt
xdrint(XDR *xdrs, int *ip);
xdrint translates between C integers and their external repre-
sentations. This routine returns 1 if it succeeds, 0 otherwise.
boolt
xdrlong(XDR *xdrs, long *lp);
xdrlong translates between C long integers and their external
representations. This routine returns 1 if it succeeds, 0 other-
wise.
boolt
xdrshort(XDR *xdrs, short *sp);
xdrshort translates between C short integers and their external
representations. This routine returns 1 if it succeeds, 0 other-
wise.
boolt
xdruchar(XDR *xdrs, char *ucp);
xdruchar translates between unsigned C characters and their
external representations. This routine returns 1 if it succeeds,
0 otherwise.
boolt
xdrulong(XDR *xdrs, unsigned long *ulp);
Page 2 Reliant UNIX 5.44 Printed 11/98
xdr_simple(3N) xdr_simple(3N)
xdrulong translates between C unsigned long integers and their
external representations. This routine returns 1 if it succeeds,
0 otherwise.
boolt
xdrushort(XDR *xdrs, unsigned short *usp);
xdrushort translates between C unsigned short integers and
their external representations. This routine returns 1 if it
succeeds, 0 otherwise.
boolt
xdrvoid(void);
This routine always returns 1. It may be passed to RPC routines
that require a function parameter, where nothing is to be done.
SEE ALSO
rpc(3N), xdradmin(3N), xdrcomplex(3N), xdrcreate(3N).
Page 3 Reliant UNIX 5.44 Printed 11/98