xdr(3) Library Functions Manual xdr(3) xdr - LIBRARY Standard C library (libc, -lc) C . . : typedef int bool_t; typedef bool_t (*xdrproc_t)(XDR *, void *,...); 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); A filter primitive that translates between C characters and their external representations. This routine returns one if it succeeds, zero otherwise. Note: encoded characters are not packed, and occupy 4 bytes each. For arrays of characters, it is worthwhile to consider xdr_bytes(), xdr_opaque(), or 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(), , null, xdr_reference(). , xdr_pointer() , , . void xdrrec_create(XDR *xdrs, unsigned int sendsize, unsigned int recvsize, char *handle, int (*readit)(char *, char *, int), int (*writeit)(char *, char *, int)); XDR, xdrs. sendsize; , , . recvsize; , , . , writeit. , , readit. read(2) write(2), , handle . : XDR op . : XDR, , xdrrec_skiprecord(). . , XDR, 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. : null. 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); -, 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) 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 ; GNU 3 , . . , , . Linux man-pages 6.06 31 2023 . xdr(3)