xdr_array()

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

arrp sizep maxsize elsize elproc

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


[Back: xdr_accepted_reply()]
[Next: xdr_authunix_parms()]