📄 xdrtest.c
字号:
/* $Header: /home/harrison/c/tcgmsg/ipcv4.0/RCS/xdrtest.c,v 1.1 91/12/06 17:28:01 harrison Exp Locker: harrison $ */#include <stdio.h>#include <rpc/types.h>#include <rpc/xdr.h>#if defined(ULTRIX) || defined(SGI)extern void *malloc();#elseextern char *malloc();#endifstatic char *xdrbuf;static XDR xdrs;int main(argc, argv) int argc; char **argv;{ long data[4]; long len; long *temp=data; if (argc != 2) return 1; xdrbuf = malloc(4096); if (strcmp(argv[1], "encode") == 0) { xdrmem_create(&xdrs, xdrbuf, 4096, XDR_ENCODE); (void) fprintf(stderr," encode xdr_setpos=%d\n", xdr_setpos(&xdrs, (u_int) 0)); (void) scanf("%ld %ld %ld %ld", data, data+1, data+2, data+3); (void) fprintf(stderr,"encode Input longs %ld, %ld, %ld, %ld\n", data[0], data[1], data[2], data[3]); len = 4; (void) fprintf(stderr,"encode xdr_array=%d\n", xdr_array(&xdrs, (char **) &temp, &len, (u_int) 4096, (u_int) sizeof(long), xdr_long)); len = 4*4 + 4; (void) fprintf(stderr,"encode len=%ld\n", len); (void) fwrite(&len, 4, 1, stdout); (void) fwrite(xdrbuf, 1, len, stdout); (void) fprintf(stderr,"encode data written\n"); return 0; } else { xdrmem_create(&xdrs, xdrbuf, 4096, XDR_DECODE); (void) fprintf(stderr," decode xdr_setpos=%d\n", xdr_setpos(&xdrs, (u_int) 0)); (void) fread(&len, 4, 1, stdin); (void) fprintf(stderr,"decode len=%ld\n", len); (void) fread(xdrbuf, 1, len, stdin); (void) fprintf(stderr,"decode data read\n"); (void) fprintf(stderr,"decode xdr_array=%d\n", xdr_array(&xdrs, (char **) &temp, &len, (u_int) 4096, (u_int) sizeof(long), xdr_long)); (void) fprintf(stderr,"decode Input longs %ld, %ld, %ld, %ld\n", data[0], data[1], data[2], data[3]); return 0; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -