Листинг 16.19. Ни одно из значений не будет закодировано
//sunrpc/xdr1/opt1z.с
1 #include "unpipc.h"
2 #include "opt1.h"
3 int
4 main(int argc, char **argv)
5 {
6 int i;
7 XDR xhandle;
8 char *buff;
9 long *lptr;
10 args out;
11 size_t size;
12 out.arg1.flag = FALSE;
13 out.arg2.arg2_len = 0;
14 out.arg3 = NULL;
15 buff = Malloc(BUFFSIZE); /* Адрес должен быть кратен четырем */
16 xdrmem_create(&xhandle, buff, BUFFSIZE, XOR_ENCODE);
17 if (xdr_args(&xhandle, &out) != TRUE)
18 err_quit("xdr_args error");
19 size = xdr_getpos(&xhandle);
20 lptr = (long*)buff;
21 for (i = 0; i < size; i += 4)
22 printf("%ld\n", (long) ntohl(*lptr++));
23 exit(0);
24 }