The xdr_array() call translates between an array and its external representation.
Syntax
#include <rpc\rpc.h> bool_t xdr_array(xdrs, arrp, sizep, maxsize, elsize, elproc) XDR *xdrs; char **arrp; u_int *sizep; u_int maxsize; u_int elsize; xdrproc_t elproc;
Parameters
xdrs
Return Values
The value 1 indicates success; the value 0 indicates an error.
Examples
struct myarray { int *arrdata; u_int arrlength; }; void xdr_myarray(xdrsp,arrp) XDR *xdrsp; struct myarray *arrp; { xdr_array(xdrsp,(caddr_t *)&arrp->arrdata,&arrp->arrlength, MAXLEN,sizeof(int),xdr_int); } ... static int arrc_in[10],arrc_out[10]; ... u_long procnum; register CLIENT *clnt; enum clnt_stat cs; struct timeval total_timeout; ... total_timeout.tv_sec = 20; total_timeout.tv_usec = 0; ... myarrc_in.arrdata = & arrc_in&lbrk.0&rbrk.; myarrc_in.arrlength = ( sizeof(arrc_in) / sizeof (int) ); myarrc_out.arrdata = & arrc_out&lbrk.0&rbrk.; myarrc_out.arrlength = ( sizeof(arrc_out) / sizeof (int) ); cs=clnt_call(clnt, procnum, xdr_myarray, (char *) &myarrc_in, xdr_myarray, (char *)&myarrc_out, total_timeout); if ( cs != RPC_SUCCESS) printf("*Error* clnt_call fail :\n"); ...