xdr(3) Library Functions Manual xdr(3) xdr - C (libc, -lc) C . . : typedef int bool_t; typedef typeof(bool_t (XDR *, void *, ...)) *xdrproc_t; XDR . bool_t xdr_array(XDR *xdrs, char **arrp, unsigned int *sizep, unsigned int maxsize, unsigned int elsize, xdrproc_t elproc); , . arrp , sizep -- , maxsize. elsize sizeof , elproc XDR, , , . 1 , 0. bool_t xdr_bool(XDR *xdrs, bool_t *bp); , ( ) . , , , . 1 , 0. bool_t xdr_bytes(XDR *xdrs, char **sp, unsigned int *sizep, unsigned int maxsize); , . sp . , sizep; maxsize. 1 , 0. bool_t xdr_char(XDR *xdrs, char *cp); , C . 1 , 0. : , 4 . xdr_bytes(), xdr_opaque() xdr_string(). void xdr_destroy(XDR *xdrs); , , XDR- xdrs. , . xdrs xdr_destroy() . bool_t xdr_double(XDR *xdrs, double *dp); , double C . 1 , 0. bool_t xdr_enum(XDR *xdrs, enum_t *ep); , enum ( ) C . 1 , 0. bool_t xdr_float(XDR *xdrs, float *fp); , float C . 1 , 0. void xdr_free(xdrproc_t proc, char *objp); . XDR ; -- . : , , , () , . unsigned int xdr_getpos(XDR *xdrs); , XDR- xdrs . , XDR. , XDR , -- , XDR . long *xdr_inline(XDR *xdrs, int len); , , XDR- xdrs. ; len . : long *. : xdr_inline() NULL (0), . , ; . bool_t xdr_int(XDR *xdrs, int *ip); , C . 1 , 0. bool_t xdr_long(XDR *xdrs, long *lp); , long C . 1 , 0. void xdrmem_create(XDR *xdrs, char *addr, unsigned int size, enum xdr_op op); XDR, xdrs. ( ), addr size . op XDR ( : XDR_ENCODE, XDR_DECODE XDR_FREE). bool_t xdr_opaque(XDR *xdrs, char *cp, unsigned int cnt); , . cp , cnt . 1 , 0. bool_t xdr_pointer(XDR *xdrs, char **objpp, unsigned int objsize, xdrproc_t xdrobj); xdr_reference(), , xdr_reference() . , xdr_pointer() , , . void xdrrec_create(XDR *xdrs, unsigned int sendsize, unsigned int recvsize, char *handle, typeof(int (char *, char *, int)) *readit, typeof(int (char *, char *, int)) *writeit); XDR, xdrs. sendsize; , . recvsize, . , writeit. , , readit. read(2) write(2), , handle. : op XDR . : XDR, , xdrrec_skiprecord(), - API- XDR. . , XDR, API- xdr*_create, . bool_t xdrrec_endofrecord(XDR *xdrs, int sendnow); , xdrrec_create(). , sendnow , . 1 , 0. bool_t xdrrec_eof(XDR *xdrs); , xdrrec_create(). 1, ; 0. bool_t xdrrec_skiprecord(XDR *xdrs); , xdrrec_create(). XDR, . 1 , 0. bool_t xdr_reference(XDR *xdrs, char **pp, unsigned int size, xdrproc_t proc); , . pp ; size (sizeof) , *pp; proc - XDR, . 1 , 0. : . xdr_pointer(). xdr_setpos(XDR *xdrs, unsigned int pos); , , XDR- xdrs. pos , xdr_getpos(). 1, XDR , 0. : XDR , , . bool_t xdr_short(XDR *xdrs, short *sp); , short C . 1 , 0. void xdrstdio_create(XDR *xdrs, FILE *file, enum xdr_op op); XDR, xdrs. XDR stdio, file. op XDR ( : XDR_ENCODE, XDR_DECODE XDR_FREE). : , XDR, fflush(3) file, fclose(3). bool_t xdr_string(XDR *xdrs, char **sp, unsigned int maxsize); , C . maxsize. : sp . 1 , 0. bool_t xdr_u_char(XDR *xdrs, unsigned char *ucp); , (unsigned) C . 1 , 0. bool_t xdr_u_int(XDR *xdrs, unsigned int *up); , unsigned C . 1 , 0. bool_t xdr_u_long(XDR *xdrs, unsigned long *ulp); , unsigned long C . 1 , 0. bool_t xdr_u_short(XDR *xdrs, unsigned short *usp); , unsigned short C . 1 , 0. bool_t xdr_union(XDR *xdrs, enum_t *dscmp, char *unp, const struct xdr_discrim *choices, xdrproc_t defaultarm); /* may equal NULL */ , (discriminated union) C . , dscmp. enum_t. , unp. choices xdr_discrim(). [,]. , . xdr_discrim() NULL. choices, defaultarm ( NULL). 1 , 0. bool_t xdr_vector(XDR *xdrs, char *arrp, unsigned int size, unsigned int elsize, xdrproc_t elproc); , . arrp , size -- . elsize sizeof , elproc XDR, , , . 1 , 0. bool_t xdr_void(void); 1. RPC, , . bool_t xdr_wrapstring(XDR *xdrs, char **sp); , xdr_string(xdrs, sp, MAXUN.UNSIGNED); MAXUN.UNSIGNED . xdr_wrapstring() , RPC XDR, xdr_string(), , . 1 , 0. attributes(7). +----------------------------+----------------------------------------------------------+--------------------------+ | | | | +----------------------------+----------------------------------------------------------+--------------------------+ |xdr_array(), xdr_bool(), | | MT-Safe | |xdr_bytes(), xdr_char(), | | | |xdr_destroy(), | | | |xdr_double(), xdr_enum(), | | | |xdr_float(), xdr_free(), | | | |xdr_getpos(), xdr_inline(), | | | |xdr_int(), xdr_long(), | | | |xdrmem_create(), | | | |xdr_opaque(), | | | |xdr_pointer(), | | | |xdrrec_create(), | | | |xdrrec_eof(), | | | |xdrrec_endofrecord(), | | | |xdrrec_skiprecord(), | | | |xdr_reference(), | | | |xdr_setpos(), xdr_short(), | | | |xdrstdio_create(), | | | |xdr_string(), xdr_u_char(), | | | |xdr_u_int(), xdr_u_long(), | | | |xdr_u_short(), xdr_union(), | | | |xdr_vector(), xdr_void(), | | | |xdr_wrapstring() | | | +----------------------------+----------------------------------------------------------+--------------------------+ rpc(3) : : : Sun. XDR: External Data Representation Standard, RFC 1014, Sun Microsystems, Inc., USC-ISI. () Azamat Hackimov , Yuri Kozlov , Alexander Golubev ; GNU (GNU General Public License - GPL, 3 ) , - . - , , () () () . Linux man-pages 6.18 21 2025 . xdr(3)