Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ xdr_create(3N) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fclose(3S)

read(2)

rpc(3N)

write(2)

xdr_admin(3N)

xdr_complex(3N)

xdr_simple(3N)






       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
             cc [options] file -lnsl
             #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 *,
                   char *, const int), const int (*writeit)(const void *,
                   const char *, const int));
             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.

             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);





                           Copyright 1994 Novell, Inc.               Page 1













      xdr_create(3N)                                        xdr_create(3N)


                  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)
                  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)].




                          Copyright 1994 Novell, Inc.               Page 2













       xdr_create(3N)                                        xdr_create(3N)


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













































                           Copyright 1994 Novell, Inc.               Page 3








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026