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