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