svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
xdr_create(3c)
Standard C Library Functions xdr_create(3C)
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 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);
DESCRIPTION
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.
Routines
See rpc(3C) 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.
xdr_destroy() A macro that invokes the destroy routine associated
with the XDR stream, xdrs. Private data structures
associated with the stream are freed. Using xdrs
after xdr_destroy() is invoked is undefined.
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 op
determines the direction of the XDR stream. The
value of op can be either XDR_ENCODE, XDR_DECODE, or
XDR_FREE.
xdrrec_create() This routine initializes the read-oriented 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, xdrrec_create() calls readit.
The behavior of these two routines is similar to the
system calls read() and write(), 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. See read(2) and
write(2), respectively. The XDR stream's op field
must be set by the caller.
This XDR stream implements an intermediate record
stream. Therefore, additional bytes in the stream
are provided for record boundary information.
xdrstdio_create() 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. The value of op can be either XDR_ENCODE,
XDR_DECODE, or XDR_FREE.
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 initializ‐
ing 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.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ MT-LevelMT-Safe
SEE ALSO
read(2), write(2), fclose(3C), malloc(3C), rpc(3C), xdr_admin(3C),
xdr_complex(3C), xdr_simple(3C), attributes(7)
Oracle Solaris 11.4 26 Sep 2000 xdr_create(3C)