xdr_create.3n (2010 09)

x
xdr_create(3N) xdr_create(3N)
NAME
xdr_create, xdr_destroy, xdrmem_create, xdrrec_create, xdrstdio_create - library routines for external
data representation stream creation
SYNOPSIS
#include <rpc/xdr.h>
void xdr_destroy(XDR *
xdrs);
void xdrmem_create(XDR *
xdrs,
const caddr_t addr,
const u_int size,
const enum xdr_op op);
void xdrrec_create(XDR *
xdrs,
const u_int sendsz,
const u_int recvsz ,
const caddr_t handle ,
const int (*readit )(
const void *read_handle ,
char *buf,
const int len),
const int (*writeit )(
const void *write_handle ,
const char *buf,
const int len));
void xdrstdio_create(XDR *
xdrs,
FILE *file,
const enum xdr_op op);
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 with the creation of XDR streams. XDR streams have to be created before any data
can be translated into XDR format.
Routines
See rpc (3N) for the definition of the XDR, CLIENT, and SVCXPRT
data structures. Any buffers passed to
the XDR routines must be properly aligned. It is suggested either that malloc (3C) be used to allocate
these buffers or that the programmer insure that the buffer address is divisible evenly by four.
void xdr_destroy()
A macro that invokes the destroy routine associated with the XDR stream, xdrs. Private data struc-
tures associated with the stream are freed. Using xdrs after invoking xdr_destroy() is
undefined.
void xdrmem_create()
This routine initializes the XDR stream object pointed to by xdrs . The stream’s data is written to or
read from a chunk of memory at location addr whose length is no less than size bytes long. The
parameter op determines the direction of the XDR stream. The value of op can be either
XDR_ENCODE, XDR_DECODE,orXDR_FREE. In the case where the value of size exceeds
INT_MAX, xdrmem_create() resets size to INT_MAX.
void xdrrec_create()
This routine initializes the read-oriented XDR stream object pointed to by xdrs. The streams data is
written to a buffer of size sendsz ; a value of 0 indicates the system should use a suitable default.
The streams data is read from a buffer of size recvsz; it too can be set to a suitable default by pass-
ing a 0 value. When a stream’s output buffer is full, writeit is called. Similarly, when a streams
input buffer is empty, readit is called. The behavior of these two routines is similar to the system
calls read() and write() (see read (2) and write (2), respectively), except that an appropriate
handle (read_handle or write_handle ) is passed to the former routines as the first parameter
instead of a file descriptor. The XDR stream’s op field must be set by the caller.
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (2 pages)