*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> xdr_create (3n)              
Title
Content
Arch
Section
 

Contents


xdr_create(3N)							xdr_create(3N)


NAME    [Toc]    [Back]

     xdr_create:   xdr_destroy,	xdrmem_create, xdrrec_create, xdrstdio_create
     - library routines	for external data representation stream	creation

DESCRIPTION    [Toc]    [Back]

     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    [Toc]    [Back]
     See rpc(3N) for the definition of the XDR,	CLIENT,	and SVCXPRT data
     structures.

     #include <rpc/xdr.h>

     void
     xdr_destroy(XDR *xdrs);

	  A macro that invokes the destroy routine associated with the XDR
	  stream, xdrs.	 Destruction usually involves freeing private data
	  structures associated	with the stream.  Using	xdrs after invoking
	  xdr_destroy is undefined.

     void
     xdrmem_create(XDR *xdrs, const caddr_t addr,
	  const	u_int size, const enum xdr_op op);

	  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 more	than size bytes	long.  The op
	  determines the direction of the XDR stream (either XDR_ENCODE,
	  XDR_DECODE, or XDR_FREE).

     void
     xdrrec_create(XDR *xdrs, const u_int sendsz,
	  const	u_int recvsz, const caddr_t handle,
	  const	int (*readit)(const void *, char *, const int),
	  const	int (*writeit)(const void *, const char	*, const int));

	  This routine initializes the XDR stream object pointed to by xdrs.
	  The stream's data is written to a buffer of size sendsz; a value of
	  0 indicates the system should	use a suitable default.	 The stream's
	  data is read from a buffer of	size recvsz; it	too can	be set to a
	  suitable default by passing a	0 value.  When a stream's output
	  buffer is full, writeit is called.  Similarly, when a	stream's 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 handle (CLIENT, or SVCXPRT)



									Page 1






xdr_create(3N)							xdr_create(3N)



	  is passed to the former routines as the first	parameter instead of a
	  file descriptor.  Note:  the XDR stream's op field must be set by
	  the caller.

	  Note:	 this XDR stream implements an intermediate record stream.
	  Therefore there are additional bytes in the stream to	provide	record
	  boundary information.

     void
     xdrstdio_create(XDR *xdrs,	FILE *file, const enum xdr_op op);

	  This routine initializes the XDR stream object pointed to by xdrs.
	  The XDR stream data is written to, or	read from, the standard	I/O
	  stream file.	The parameter op determines the	direction of the XDR
	  stream (either XDR_ENCODE, XDR_DECODE, or XDR_FREE).

	  Note:	 the destroy routine associated	with such XDR streams calls
	  fflush on the	file stream, but never fclose [see fclose(3S)].

SEE ALSO    [Toc]    [Back]

      
      
     fclose(3S), read(2), rpc(3N), write(2), xdr_admin(3N), xdr_complex(3N),
     xdr_simple(3N)


									PPPPaaaaggggeeee 2222
[ Back ]
 Similar pages
Name OS Title
xdrrec_create Tru64 library routines for external data representation
xdrrec_endofrecord Tru64 library routines for external data representation
xdrrec_eof Tru64 library routines for external data representation
xdr_array Tru64 library routines for external data representation
xdrrec_skiprecord Tru64 library routines for external data representation
xdr Tru64 library routines for external data representation
xdr IRIX External Data Representation (XDR) library routines
xdrstdio_create Tru64 library routines for external data representation
xdr_bool OpenBSD library routines for external data representation
xdr_reference FreeBSD library routines for external data representation
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service