xdr_bytes()

The xdr_bytes() call translates between byte strings and their external representations.

Syntax

#include <rpc\rpc.h>

bool_t
xdr_bytes(xdrs, sp, sizep, maxsize)
XDR *xdrs;
char **sp;
u_int *sizep;
u_int maxsize;

Parameters

xdrs

sp sizep maxsize

Return Values

The value 1 indicates success; the value 0 indicates an error.

Examples

struct mybytes   {
    char    *bytdata;
    u_int   bytlength;
   };

void
xdr_mybytes(xdrsp,arrp)
XDR  *xdrsp;
struct mybytes *arrp;
{
   xdr_bytes(xdrsp,(caddr_t *)&arrp->bytdata,&arrp->bytlength,MAXLEN);
}

...
char *bytc_in ,*bytc_out;
...
u_long procnum;
register CLIENT *clnt;
enum clnt_stat cs;
struct timeval  total_timeout;
...
total_timeout.tv_sec = 20;
total_timeout.tv_usec = 0;
...

mybytc_in.bytdata =  bytc_in;
mybytc_in.bytlength = strlen(bytc_in)+1;
cs=clnt_call(clnt, procnum, xdr_mybytes, (caddr_t *) &mybytc_in,
            xdr_mybytes, (caddr_t *)&mybytc_out, total_timeout);
if ( cs != RPC_SUCCESS)
   printf("*Error* clnt_call fail :\n");


[Back: xdr_bool()]
[Next: xdr_callhdr()]