The XDR library routines allow C programmers to describe simple 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 require the creation of XDR streams (see xdr_create(3NSL)).
Routines
See rpc(3NSL) for the definition of the XDR data structure. Note that any buffers passed to the XDR routines
must be properly aligned. It is suggested that malloc(3C) be used to allocate these buffers or that the programmer insure that the buffer address is divisible
evenly by four.
xdr_bool()
xdr_bool() translates between booleans (C integers) and their external representations. When encoding data, this filter produces values of either 1 or 0. This routine returns TRUE if it succeeds, FALSE otherwise.
xdr_char()
xdr_char() translates between C characters and their external representations. This routine returns TRUE if it succeeds, FALSE
otherwise. Note: encoded characters are not packed, and occupy 4 bytes each. For arrays of characters, it is worthwhile to consider xdr_bytes(), xdr_opaque(), or xdr_string() (see xdr_complex(3NSL)).
xdr_double()
xdr_double() translates between C double precision numbers and their external representations. This routine returns TRUE if it succeeds, FALSE otherwise.
xdr_enum()
xdr_enum() translates between C enums (actually integers) and their external representations. This routine returns TRUE if it succeeds, FALSE otherwise.
xdr_float()
xdr_float() translates between C floats and their external representations. This routine returns TRUE if it succeeds, FALSE otherwise.
xdr_free()
Generic freeing routine. The first argument is the XDR routine for the object being freed. The second argument is a pointer to the object itself. Note: the pointer passed to this routine is not freed,
but what it points to is freed (recursively, depending on the XDR routine).
xdr_hyper()
xdr_hyper() translates between ANSI C longlong integers and their external representations. This routine returns TRUE if it succeeds, FALSE otherwise.
xdr_int()
xdr_int() translates between C integers and their external representations. This routine returns TRUE if it succeeds, FALSE otherwise.
xdr_long()
xdr_long() translates between C long integers and their external representations. This routine returns TRUE if it succeeds, FALSE otherwise.
In a 64-bit environment, this routine returns an error if the value of lp is outside the range [INT32_MIN, INT32_MAX]. The xdr_int() routine is recommended in place of this routine.
xdr_longlong_t()
xdr_longlong_t() translates between ANSI C longlong integers and their external representations. This routine returns TRUE
if it succeeds, FALSE otherwise. This routine is identical to xdr_hyper().
xdr_quadruple()
xdr_quadruple() translates between IEEE quadruple precision floating point numbers and their external representations. This routine returns TRUE if it succeeds, FALSE otherwise.
xdr_short()
xdr_short() translates between C short integers and their external representations. This routine returns TRUE if it succeeds, FALSE otherwise.
xdr_u_char()
xdr_u_char() translates between unsigned C characters and their external representations. This routine returns TRUE if it succeeds, FALSE otherwise.
xdr_u_hyper()
xdr_u_hyper() translates between unsigned ANSI C longlong integers and their external representations. This routine returns TRUE
if it succeeds, FALSE otherwise.
xdr_u_int()
A filter primitive that translates between a C unsigned integer and its external representation. This routine returns TRUE if it succeeds, FALSE
otherwise.
xdr_u_long()
xdr_u_long() translates between C unsigned long integers and their external representations. This routine returns TRUE if it succeeds, FALSE otherwise.
In a 64-bit environment, this routine returns an error if the value of ulp is outside the range [0, UINT32_MAX]. The xdr_u_int() routine is recommended in place of this routine.
xdr_u_longlong_t()
xdr_u_longlong_t() translates between unsigned ANSI C longlong integers and their external representations. This routine returns TRUE if it succeeds, FALSE otherwise. This routine is identical to xdr_u_hyper().
xdr_u_short()
xdr_u_short() translates between C unsigned short integers and their external representations. This routine returns TRUE if it succeeds, FALSE otherwise.
xdr_void()
This routine always returns TRUE. It may be passed to RPC routines that require a function parameter, where nothing is to be done.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes: