|XDR_CREATE(3NSL)||Networking Services Library Functions||XDR_CREATE(3NSL)|
#include <rpc/xdr.h> void xdr_destroy(XDR *xdrs);
void xdrmem_create(XDR *xdrs, const caddr_t addr, const uint_t size, const enum xdr_op op);
void xdrrec_create(XDR *xdrs, const uint_t sendsz, const uint_t 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);
The 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, which must be created before any data can be translated into XDR format.
See rpc(3NSL) for the definition of the XDR CLIENT and SVCXPRT data structures. Any buffers passed to the XDR routines must be properly aligned. Use malloc(3C) to allocate these buffers or be sure that the buffer address is divisible evenly by four.
This XDR stream implements an intermediate record stream. Therefore, additional bytes in the stream are provided for record boundary information.
The destroy routine associated with XDR streams calls fflush() on the file stream, but never fclose(). See fclose(3C).
A failure of any of these functions can be detected by first initializing the x_ops field in the XDR structure (xdrs-> x_ops) to NULL before calling the xdr*_create() function. If the x_ops field is still NULL, after the return from the xdr*_create() function, the call has failed. If the x_ops field contains some other value, assume that the call has succeeded.
See attributes(7) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
|September 26, 2000||OmniOS|