1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2012-04-25 05:36+0900\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
16 "Content-Type: text/plain; charset=CHARSET\n"
17 "Content-Transfer-Encoding: 8bit\n"
20 #: build/C/man3/getrpcent.3:4
26 #: build/C/man3/getrpcent.3:4
32 #: build/C/man3/getrpcent.3:4 build/C/man3/getrpcent_r.3:24 build/C/man3/getrpcport.3:4 build/C/man3/key_setsecret.3:5 build/C/man3/rpc.3:7 build/C/man5/rpc.5:4 build/C/man3/rtime.3:8 build/C/man3/xdr.3:7
34 msgid "Linux Programmer's Manual"
38 #: build/C/man3/getrpcent.3:5 build/C/man3/getrpcent_r.3:25 build/C/man3/getrpcport.3:5 build/C/man3/key_setsecret.3:6 build/C/man3/rpc.3:8 build/C/man5/rpc.5:5 build/C/man3/rtime.3:9 build/C/man3/xdr.3:8
44 #: build/C/man3/getrpcent.3:8
46 "getrpcent, getrpcbyname, getrpcbynumber, setrpcent, endrpcent - get RPC "
51 #: build/C/man3/getrpcent.3:8 build/C/man3/getrpcent_r.3:28 build/C/man3/getrpcport.3:7 build/C/man3/key_setsecret.3:9 build/C/man5/rpc.5:7 build/C/man3/rtime.3:11
57 #: build/C/man3/getrpcent.3:11 build/C/man3/getrpcent_r.3:31
59 msgid "B<#include E<lt>netdb.hE<gt>>\n"
63 #: build/C/man3/getrpcent.3:13
65 msgid "B<struct rpcent *getrpcent(void);>\n"
69 #: build/C/man3/getrpcent.3:15
71 msgid "B<struct rpcent *getrpcbyname(char *>I<name>B<);>\n"
75 #: build/C/man3/getrpcent.3:17
77 msgid "B<struct rpcent *getrpcbynumber(int >I<number>B<);>\n"
81 #: build/C/man3/getrpcent.3:19
83 msgid "B<void setrpcent(int >I<stayopen>B<);>\n"
87 #: build/C/man3/getrpcent.3:21
89 msgid "B<void endrpcent(void);>\n"
93 #: build/C/man3/getrpcent.3:22 build/C/man3/getrpcent_r.3:57 build/C/man3/getrpcport.3:12 build/C/man3/key_setsecret.3:23 build/C/man5/rpc.5:9 build/C/man3/rtime.3:18
99 #: build/C/man3/getrpcent.3:31
101 "B<getrpcent>(), B<getrpcbyname>(), and B<getrpcbynumber>() each return a "
102 "pointer to an object with the following structure containing the broken-out "
103 "fields of an entry in the RPC program number data base."
107 #: build/C/man3/getrpcent.3:39
111 " char *r_name; /* name of server for this RPC program */\n"
112 " char **r_aliases; /* alias list */\n"
113 " long r_number; /* RPC program number */\n"
118 #: build/C/man3/getrpcent.3:43
119 msgid "The members of this structure are:"
123 #: build/C/man3/getrpcent.3:44
129 #: build/C/man3/getrpcent.3:47
130 msgid "The name of the server for this RPC program."
134 #: build/C/man3/getrpcent.3:47
140 #: build/C/man3/getrpcent.3:50
141 msgid "A NULL-terminated list of alternate names for the RPC program."
145 #: build/C/man3/getrpcent.3:50
151 #: build/C/man3/getrpcent.3:53
152 msgid "The RPC program number for this service."
156 #: build/C/man3/getrpcent.3:58
158 "B<getrpcent>() reads the next entry from the database. A connection is "
159 "opened to the database if necessary."
163 #: build/C/man3/getrpcent.3:67
165 "B<setrpcent>() function opens a connection to the database, and sets the "
166 "next entry to the first entry. If I<stayopen> is nonzero, then the "
167 "connection to the database will not be closed between calls to one of the "
168 "B<getrpc*>() functions."
172 #: build/C/man3/getrpcent.3:71
173 msgid "The B<endrpcent>() function closes the connection to the database."
177 #: build/C/man3/getrpcent.3:78
179 "B<getrpcbyname>() and B<getrpcbynumber>() sequentially search from the "
180 "beginning of the file until a matching RPC program name or program number is "
181 "found, or until end-of-file is encountered."
185 #: build/C/man3/getrpcent.3:78 build/C/man3/getrpcent_r.3:105 build/C/man3/key_setsecret.3:55 build/C/man3/rtime.3:32
191 #: build/C/man3/getrpcent.3:88
193 "On success, B<getrpcent>(), B<getrpcbyname>(), and B<getrpcbynumber>() "
194 "return a pointer to a statically allocated I<rpcent> structure. A NULL "
195 "pointer is returned on EOF or error."
199 #: build/C/man3/getrpcent.3:88 build/C/man5/rpc.5:71
205 #: build/C/man3/getrpcent.3:89 build/C/man5/rpc.5:72
211 #: build/C/man3/getrpcent.3:92
212 msgid "RPC program number database."
216 #: build/C/man3/getrpcent.3:92 build/C/man3/getrpcent_r.3:128 build/C/man3/getrpcport.3:32
218 msgid "CONFORMING TO"
222 #: build/C/man3/getrpcent.3:95 build/C/man3/getrpcport.3:34
223 msgid "Not in POSIX.1-2001. Present on the BSDs, Solaris, and many other systems."
227 #: build/C/man3/getrpcent.3:95 build/C/man3/rtime.3:71
233 #: build/C/man3/getrpcent.3:100
235 "All information is contained in a static area so it must be copied if it is "
240 #: build/C/man3/getrpcent.3:100 build/C/man3/getrpcent_r.3:132 build/C/man3/key_setsecret.3:64 build/C/man3/rpc.3:1098 build/C/man5/rpc.5:75 build/C/man3/rtime.3:120 build/C/man3/xdr.3:538
246 #: build/C/man3/getrpcent.3:104
247 msgid "B<getrpcent_r>(3), B<rpc>(5), B<rpcinfo>(8), B<ypserv>(8)"
251 #: build/C/man3/getrpcent_r.3:24
257 #: build/C/man3/getrpcent_r.3:24
263 #: build/C/man3/getrpcent_r.3:24 build/C/man3/rtime.3:8
269 #: build/C/man3/getrpcent_r.3:28
270 msgid "getrpcent_r, getrpcbyname_r, getrpcbynumber_r - get RPC entry (reentrant)"
274 #: build/C/man3/getrpcent_r.3:34
277 "B<int getrpcent_r(struct rpcent *>I<result_buf>B<, char *>I<buf>B<,>\n"
278 "B< size_t >I<buflen>B<, struct rpcent **>I<result>B<);>\n"
282 #: build/C/man3/getrpcent_r.3:38
285 "B<int getrpcbyname_r(const char *>I<name>B<,>\n"
286 "B< struct rpcent *>I<result_buf>B<, char *>I<buf>B<,>\n"
287 "B< size_t >I<buflen>B<, struct rpcent **>I<result>B<);>\n"
291 #: build/C/man3/getrpcent_r.3:42
294 "B<int getrpcbynumber_r(int >I<number>B<,>\n"
295 "B< struct rpcent *>I<result_buf>B<, char *>I<buf>B<,>\n"
296 "B< size_t >I<buflen>B<, struct rpcent **>I<result>B<);>\n"
300 #: build/C/man3/getrpcent_r.3:47
301 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
305 #: build/C/man3/getrpcent_r.3:53
306 msgid "B<getrpcent_r>(), B<getrpcbyname_r>(), B<getrpcbynumber_r>():"
310 #: build/C/man3/getrpcent_r.3:55
311 msgid "_BSD_SOURCE || _SVID_SOURCE"
315 #: build/C/man3/getrpcent_r.3:74
317 "The B<getrpcent_r>(), B<getrpcbyname_r>(), and B<getrpcbynumber_r>() "
318 "functions are the reentrant equivalents of, respectively, B<getrpcent>(3), "
319 "B<getrpcbyname>(3), and B<getrpcbynumber>(3). They differ in the way that "
320 "the I<rpcent> structure is returned, and in the function calling signature "
321 "and return value. This manual page describes just the differences from the "
322 "nonreentrant functions."
326 #: build/C/man3/getrpcent_r.3:80
328 "Instead of returning a pointer to a statically allocated I<rpcent> structure "
329 "as the function result, these functions copy the structure into the location "
330 "pointed to by I<result_buf>."
333 #. I can find no information on the required/recommended buffer size;
334 #. the nonreentrant functions use a 1024 byte buffer -- mtk.
336 #: build/C/man3/getrpcent_r.3:97
338 "The I<buf> array is used to store the string fields pointed to by the "
339 "returned I<rpcent> structure. (The nonreentrant functions allocate these "
340 "strings in static storage.) The size of this array is specified in "
341 "I<buflen>. If I<buf> is too small, the call fails with the error B<ERANGE>, "
342 "and the caller must try again with a larger buffer. (A buffer of length "
343 "1024 bytes should be sufficient for most applications.)"
347 #: build/C/man3/getrpcent_r.3:105
349 "If the function call successfully obtains an RPC record, then I<*result> is "
350 "set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
354 #: build/C/man3/getrpcent_r.3:108
356 "On success, these functions return 0. On error, they return one of the "
357 "positive error numbers listed in ERRORS."
361 #: build/C/man3/getrpcent_r.3:116
363 "On error, record not found (B<getrpcbyname_r>(), B<getrpcbynumber_r>()), or "
364 "end of input (B<getrpcent_r>()) I<result> is set to NULL."
368 #: build/C/man3/getrpcent_r.3:116 build/C/man3/rtime.3:38
374 #: build/C/man3/getrpcent_r.3:117
380 #: build/C/man3/getrpcent_r.3:121
381 msgid "(B<getrpcent_r>()) No more records in database."
385 #: build/C/man3/getrpcent_r.3:121
391 #: build/C/man3/getrpcent_r.3:128
393 "I<buf> is too small. Try again with a larger buffer (and increased "
398 #: build/C/man3/getrpcent_r.3:132
400 "These functions are GNU extensions. Functions with similar names exist on "
401 "some other systems, though typically with different calling signatures."
405 #: build/C/man3/getrpcent_r.3:134
406 msgid "B<getrpcent>(3), B<rpc>(5)"
410 #: build/C/man3/getrpcport.3:4
416 #: build/C/man3/getrpcport.3:4
422 #: build/C/man3/getrpcport.3:7
423 msgid "getrpcport - get RPC port number"
427 #: build/C/man3/getrpcport.3:11
430 "B<int getrpcport(char *>I<host>B<, int >I<prognum>B<, int >I<versnum>B<, int "
435 #: build/C/man3/getrpcport.3:32
437 "B<getrpcport>() returns the port number for version I<versnum> of the RPC "
438 "program I<prognum> running on I<host> and using protocol I<proto>. It "
439 "returns 0 if it cannot contact the portmapper, or if I<prognum> is not "
440 "registered. If I<prognum> is registered but not with version I<versnum>, it "
441 "will still return a port number (for some version of the program) "
442 "indicating that the program is indeed registered. The version mismatch will "
443 "be detected upon the first call to the service."
447 #: build/C/man3/key_setsecret.3:5
449 msgid "KEY_SETSECRET"
453 #: build/C/man3/key_setsecret.3:5
459 #: build/C/man3/key_setsecret.3:9
461 "key_decryptsession, key_encryptsession, key_setsecret, key_gendes, "
462 "key_secretkey_is_set - interfaces to rpc keyserver daemon"
466 #: build/C/man3/key_setsecret.3:11
467 msgid "B<#include E<lt>rpc/rpc.hE<gt>>"
471 #: build/C/man3/key_setsecret.3:14
473 "B<int key_decryptsession(const char *>I<remotename>B<,> B<des_block "
478 #: build/C/man3/key_setsecret.3:17
480 "B<int key_encryptsession(const char *>I<remotename>B<,> B<des_block "
485 #: build/C/man3/key_setsecret.3:19
486 msgid "B<int key_gendes(des_block *>I<deskey>B<);>"
490 #: build/C/man3/key_setsecret.3:21
491 msgid "B<int key_setsecret(const char *>I<key>B<);>"
495 #: build/C/man3/key_setsecret.3:23
496 msgid "B<int key_secretkey_is_set(void);>"
500 #: build/C/man3/key_setsecret.3:28
502 "The functions here are used within the RPC's secure authentication mechanism "
503 "(AUTH_DES). There should be no need for user programs to use this "
508 #: build/C/man3/key_setsecret.3:35
510 "The function B<key_decryptsession>() uses the (remote) server netname and "
511 "takes the DES key for decrypting. It uses the public key of the server and "
512 "the secret key associated with the effective UID of the calling process."
516 #: build/C/man3/key_setsecret.3:42
518 "The function B<key_encryptsession>() is the inverse of "
519 "B<key_decryptsession>(). It encrypts the DES keys with the public key of "
520 "the server and the secret key associated with the effective UID of the "
525 #: build/C/man3/key_setsecret.3:46
527 "The function B<key_gendes>() is used to ask the keyserver for a secure "
532 #: build/C/man3/key_setsecret.3:50
534 "The function B<key_setsecret>() is used to set the key for the effective "
535 "UID of the calling process."
539 #: build/C/man3/key_setsecret.3:55
541 "The function B<key_secretkey_is_set>() can be used to determine whether a "
542 "key has been set for the effective UID of the calling process."
546 #: build/C/man3/key_setsecret.3:57
547 msgid "These functions return 1 on success and 0 on failure."
551 #: build/C/man3/key_setsecret.3:57 build/C/man3/rtime.3:53
557 #: build/C/man3/key_setsecret.3:62
559 "Note that we talk about two types of encryption here. One is asymmetric "
560 "using a public and secret key. The other is symmetric, the 64-bit DES."
564 #: build/C/man3/key_setsecret.3:64
565 msgid "These routines were part of the Linux/Doors-project, abandoned by now."
569 #: build/C/man3/key_setsecret.3:65
574 #: build/C/man3/rpc.3:7 build/C/man5/rpc.5:4
580 #: build/C/man3/rpc.3:7
586 #: build/C/man3/rpc.3:10
587 msgid "rpc - library routines for remote procedure calls"
591 #: build/C/man3/rpc.3:10 build/C/man3/xdr.3:10
593 msgid "SYNOPSIS AND DESCRIPTION"
597 #. We don't have an rpc_secure.3 page at the moment -- MTK, 19 Sep 05
598 #. Routines that are used for Secure RPC (DES authentication) are described in
599 #. .BR rpc_secure (3).
600 #. Secure RPC can be used only if DES encryption is available.
602 #: build/C/man3/rpc.3:22
604 "These routines allow C programs to make procedure calls on other machines "
605 "across the network. First, the client calls a procedure to send a data "
606 "packet to the server. Upon receipt of the packet, the server calls a "
607 "dispatch routine to perform the requested service, and then sends back a "
608 "reply. Finally, the procedure call returns to the client."
612 #: build/C/man3/rpc.3:25
614 "To take use of these routines, include the header file "
615 "I<E<lt>rpc/rpc.hE<gt>>."
619 #: build/C/man3/rpc.3:27
620 msgid "The prototypes below make use of the following types:"
624 #: build/C/man3/rpc.3:31 build/C/man3/xdr.3:24
626 msgid "typedef int I<bool_t>;\n"
630 #: build/C/man3/rpc.3:33 build/C/man3/xdr.3:26
632 msgid "typedef bool_t (*I<xdrproc_t>) (XDR *, void *,...);\n"
636 #: build/C/man3/rpc.3:36
639 "typedef bool_t (*I<resultproc_t>) (caddr_t resp,\n"
640 " struct sockaddr_in *raddr);\n"
644 #: build/C/man3/rpc.3:46
646 "See the header files for the declarations of the I<AUTH>, I<CLIENT>, "
647 "I<SVCXPRT>, and I<XDR> types."
651 #: build/C/man3/rpc.3:49
653 msgid "B<void auth_destroy(AUTH *>I<auth>B<);>\n"
657 #: build/C/man3/rpc.3:58
659 "A macro that destroys the authentication information associated with "
660 "I<auth>. Destruction usually involves deallocation of private data "
661 "structures. The use of I<auth> is undefined after calling "
666 #: build/C/man3/rpc.3:61
668 msgid "B<AUTH *authnone_create(void);>\n"
672 #: build/C/man3/rpc.3:67
674 "Create and return an RPC authentication handle that passes nonusable "
675 "authentication information with each remote procedure call. This is the "
676 "default authentication used by RPC."
680 #: build/C/man3/rpc.3:71
683 "B<AUTH *authunix_create(char *>I<host>B<, int >I<uid>B<, int >I<gid>B<,>\n"
684 "B< int >I<len>B<, int *>I<aup_gids>B<);>\n"
688 #: build/C/man3/rpc.3:87
690 "Create and return an RPC authentication handle that contains authentication "
691 "information. The parameter I<host> is the name of the machine on which the "
692 "information was created; I<uid> is the user's user ID; I<gid> is the user's "
693 "current group ID; I<len> and I<aup_gids> refer to a counted array of groups "
694 "to which the user belongs. It is easy to impersonate a user."
698 #: build/C/man3/rpc.3:90
700 msgid "B<AUTH *authunix_create_default(void);>\n"
704 #: build/C/man3/rpc.3:95
705 msgid "Calls B<authunix_create>() with the appropriate parameters."
709 #: build/C/man3/rpc.3:101
712 "B<int callrpc(char *>I<host>B<, unsigned long >I<prognum>B<,>\n"
713 "B< unsigned long >I<versnum>B<, unsigned long >I<procnum>B<,>\n"
714 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
715 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<);>\n"
719 #: build/C/man3/rpc.3:125
721 "Call the remote procedure associated with I<prognum>, I<versnum>, and "
722 "I<procnum> on the machine, I<host>. The parameter I<in> is the address of "
723 "the procedure's argument(s), and I<out> is the address of where to place the "
724 "result(s); I<inproc> is used to encode the procedure's parameters, and "
725 "I<outproc> is used to decode the procedure's results. This routine returns "
726 "zero if it succeeds, or the value of B<enum clnt_stat> cast to an integer if "
727 "it fails. The routine B<clnt_perrno>() is handy for translating failure "
728 "statuses into messages."
732 #: build/C/man3/rpc.3:131
734 "Warning: calling remote procedures with this routine uses UDP/IP as a "
735 "transport; see B<clntudp_create>() for restrictions. You do not have "
736 "control of timeouts or authentication using this routine."
740 #: build/C/man3/rpc.3:138
743 "B<enum clnt_stat clnt_broadcast(unsigned long >I<prognum>B<,>\n"
744 "B< unsigned long >I<versnum>B<, unsigned long "
746 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
747 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<,>\n"
748 "B< resultproc_t >I<eachresult>B<);>\n"
752 #: build/C/man3/rpc.3:147
754 "Like B<callrpc>(), except the call message is broadcast to all locally "
755 "connected broadcast nets. Each time it receives a response, this routine "
756 "calls B<eachresult>(), whose form is:"
760 #: build/C/man3/rpc.3:151
762 msgid "B<eachresult(char *>I<out>B<, struct sockaddr_in *>I<addr>B<);>\n"
766 #: build/C/man3/rpc.3:168
768 "where I<out> is the same as I<out> passed to B<clnt_broadcast>(), except "
769 "that the remote procedure's output is decoded there; I<addr> points to the "
770 "address of the machine that sent the results. If B<eachresult>() returns "
771 "zero, B<clnt_broadcast>() waits for more replies; otherwise it returns with "
772 "appropriate status."
776 #: build/C/man3/rpc.3:172
778 "Warning: broadcast sockets are limited in size to the maximum transfer unit "
779 "of the data link. For ethernet, this value is 1500 bytes."
783 #: build/C/man3/rpc.3:178
786 "B<enum clnt_stat clnt_call(CLIENT *>I<clnt>B<, unsigned long "
788 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
789 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<,>\n"
790 "B< struct timeval >I<tout>B<);>\n"
794 #: build/C/man3/rpc.3:197
796 "A macro that calls the remote procedure I<procnum> associated with the "
797 "client handle, I<clnt>, which is obtained with an RPC client creation "
798 "routine such as B<clnt_create>(). The parameter I<in> is the address of the "
799 "procedure's argument(s), and I<out> is the address of where to place the "
800 "result(s); I<inproc> is used to encode the procedure's parameters, and "
801 "I<outproc> is used to decode the procedure's results; I<tout> is the time "
802 "allowed for results to come back."
806 #: build/C/man3/rpc.3:200
808 msgid "B<clnt_destroy(CLIENT *>I<clnt>B<);>\n"
812 #: build/C/man3/rpc.3:213
814 "A macro that destroys the client's RPC handle. Destruction usually involves "
815 "deallocation of private data structures, including I<clnt> itself. Use of "
816 "I<clnt> is undefined after calling B<clnt_destroy>(). If the RPC library "
817 "opened the associated socket, it will close it also. Otherwise, the socket "
822 #: build/C/man3/rpc.3:217
825 "B<CLIENT *clnt_create(char *>I<host>B<, unsigned long >I<prog>B<,>\n"
826 "B< unsigned long >I<vers>B<, char *>I<proto>B<);>\n"
830 #: build/C/man3/rpc.3:228
832 "Generic client creation routine. I<host> identifies the name of the remote "
833 "host where the server is located. I<proto> indicates which kind of "
834 "transport protocol to use. The currently supported values for this field "
835 "are \\(lqudp\\(rq and \\(lqtcp\\(rq. Default timeouts are set, but can be "
836 "modified using B<clnt_control>()."
840 #: build/C/man3/rpc.3:233
842 "Warning: Using UDP has its shortcomings. Since UDP-based RPC messages can "
843 "only hold up to 8 Kbytes of encoded data, this transport cannot be used for "
844 "procedures that take large arguments or return huge results."
848 #: build/C/man3/rpc.3:236
850 msgid "B<bool_t clnt_control(CLIENT *>I<cl>B<, int >I<req>B<, char *>I<info>B<);>\n"
854 #: build/C/man3/rpc.3:247
856 "A macro used to change or retrieve various information about a client "
857 "object. I<req> indicates the type of operation, and I<info> is a pointer to "
858 "the information. For both UDP and TCP, the supported values of I<req> and "
859 "their argument types and what they do are:"
863 #: build/C/man3/rpc.3:252
866 "B<CLSET_TIMEOUT> I<struct timeval> // set total timeout\n"
867 "B<CLGET_TIMEOUT> I<struct timeval> // get total timeout\n"
871 #: build/C/man3/rpc.3:260
873 "Note: if you set the timeout using B<clnt_control>(), the timeout parameter "
874 "passed to B<clnt_call>() will be ignored in all future calls."
878 #: build/C/man3/rpc.3:264
880 msgid "B<CLGET_SERVER_ADDR> I<struct sockaddr_in > // get server's address\n"
884 #: build/C/man3/rpc.3:268
885 msgid "The following operations are valid for UDP only:"
889 #: build/C/man3/rpc.3:273
892 "B<CLSET_RETRY_TIMEOUT> I<struct timeval> // set the retry timeout\n"
893 "B<CLGET_RETRY_TIMEOUT> I<struct timeval> // get the retry timeout\n"
897 #: build/C/man3/rpc.3:279
899 "The retry timeout is the time that \"UDP RPC\" waits for the server to reply "
900 "before retransmitting the request."
904 #: build/C/man3/rpc.3:282
907 "B<clnt_freeres(CLIENT * >I<clnt>B<, xdrproc_t >I<outproc>B<, char "
912 #: build/C/man3/rpc.3:293
914 "A macro that frees any data allocated by the RPC/XDR system when it decoded "
915 "the results of an RPC call. The parameter I<out> is the address of the "
916 "results, and I<outproc> is the XDR routine describing the results. This "
917 "routine returns one if the results were successfully freed, and zero "
922 #: build/C/man3/rpc.3:296
924 msgid "B<void clnt_geterr(CLIENT *>I<clnt>B<, struct rpc_err *>I<errp>B<);>\n"
928 #: build/C/man3/rpc.3:301
930 "A macro that copies the error structure out of the client handle to the "
931 "structure at address I<errp>."
935 #: build/C/man3/rpc.3:304
937 msgid "B<void clnt_pcreateerror(char *>I<s>B<);>\n"
941 #: build/C/man3/rpc.3:318
943 "Print a message to standard error indicating why a client RPC handle could "
944 "not be created. The message is prepended with string I<s> and a colon. "
945 "Used when a B<clnt_create>(), B<clntraw_create>(), B<clnttcp_create>(), or "
946 "B<clntudp_create>() call fails."
950 #: build/C/man3/rpc.3:321
952 msgid "B<void clnt_perrno(enum clnt_stat >I<stat>B<);>\n"
956 #: build/C/man3/rpc.3:328
958 "Print a message to standard error corresponding to the condition indicated "
959 "by I<stat>. Used after B<callrpc>()."
963 #: build/C/man3/rpc.3:331
965 msgid "B<clnt_perror(CLIENT *>I<clnt>B<, char *>I<s>B<);>\n"
969 #: build/C/man3/rpc.3:341
971 "Print a message to standard error indicating why an RPC call failed; I<clnt> "
972 "is the handle used to do the call. The message is prepended with string "
973 "I<s> and a colon. Used after B<clnt_call>()."
977 #: build/C/man3/rpc.3:344
979 msgid "B<char *clnt_spcreateerror(char *>I<s>B<);>\n"
983 #: build/C/man3/rpc.3:349
985 "Like B<clnt_pcreateerror>(), except that it returns a string instead of "
986 "printing to the standard error."
990 #: build/C/man3/rpc.3:351 build/C/man3/rpc.3:391
991 msgid "Bugs: returns pointer to static data that is overwritten on each call."
995 #: build/C/man3/rpc.3:354
997 msgid "B<char *clnt_sperrno(enum clnt_stat >I<stat>B<);>\n"
1001 #: build/C/man3/rpc.3:361
1003 "Take the same arguments as B<clnt_perrno>(), but instead of sending a "
1004 "message to the standard error indicating why an RPC call failed, return a "
1005 "pointer to a string which contains the message. The string ends with a "
1010 #: build/C/man3/rpc.3:379
1012 "B<clnt_sperrno>() is used instead of B<clnt_perrno>() if the program does "
1013 "not have a standard error (as a program running as a server quite likely "
1014 "does not), or if the programmer does not want the message to be output with "
1015 "B<printf>(3), or if a message format different than that supported by "
1016 "B<clnt_perrno>() is to be used. Note: unlike B<clnt_sperror>() and "
1017 "B<clnt_spcreaterror>(), B<clnt_sperrno>() returns pointer to static data, "
1018 "but the result will not get overwritten on each call."
1022 #: build/C/man3/rpc.3:382
1024 msgid "B<char *clnt_sperror(CLIENT *>I<rpch>B<, char *>I<s>B<);>\n"
1028 #: build/C/man3/rpc.3:389
1030 "Like B<clnt_perror>(), except that (like B<clnt_sperrno>()) it returns a "
1031 "string instead of printing to standard error."
1035 #: build/C/man3/rpc.3:395
1038 "B<CLIENT *clntraw_create(unsigned long >I<prognum>B<, unsigned long "
1039 ">I<versnum>B<);>\n"
1043 #: build/C/man3/rpc.3:408
1045 "This routine creates a toy RPC client for the remote program I<prognum>, "
1046 "version I<versnum>. The transport used to pass messages to the service is "
1047 "actually a buffer within the process's address space, so the corresponding "
1048 "RPC server should live in the same address space; see B<svcraw_create>(). "
1049 "This allows simulation of RPC and acquisition of RPC overheads, such as "
1050 "round trip times, without any kernel interference. This routine returns "
1055 #: build/C/man3/rpc.3:414
1058 "B<CLIENT *clnttcp_create(struct sockaddr_in *>I<addr>B<,>\n"
1059 "B< unsigned long >I<prognum>B<, unsigned long "
1061 "B< int *>I<sockp>B<, unsigned int >I<sendsz>B<, unsigned int "
1065 #. The following inline font conversion is necessary for the hyphen indicator
1067 #: build/C/man3/rpc.3:444
1069 "This routine creates an RPC client for the remote program I<prognum>, "
1070 "version I<versnum>; the client uses TCP/IP as a transport. The remote "
1071 "program is located at Internet address I<*addr>. If I<addr-E<gt>sin_port> "
1072 "is zero, then it is set to the actual port that the remote program is "
1073 "listening on (the remote B<portmap> service is consulted for this "
1074 "information). The parameter I<sockp> is a socket; if it is B<RPC_ANYSOCK>, "
1075 "then this routine opens a new one and sets I<sockp>. Since TCP-based RPC "
1076 "uses buffered I/O, the user may specify the size of the send and receive "
1077 "buffers with the parameters I<sendsz> and I<recvsz>; values of zero choose "
1078 "suitable defaults. This routine returns NULL if it fails."
1082 #: build/C/man3/rpc.3:449
1085 "B<CLIENT *clntudp_create(struct sockaddr_in *>I<addr>B<,>\n"
1086 "B< unsigned long >I<prognum>B<, unsigned long "
1088 "B< struct timeval >I<wait>B<, int *>I<sockp>B<);>\n"
1092 #: build/C/man3/rpc.3:475
1094 "This routine creates an RPC client for the remote program I<prognum>, "
1095 "version I<versnum>; the client uses use UDP/IP as a transport. The remote "
1096 "program is located at Internet address I<addr>. If I<addr-E<gt>sin_port> is "
1097 "zero, then it is set to actual port that the remote program is listening on "
1098 "(the remote B<portmap> service is consulted for this information). The "
1099 "parameter I<sockp> is a socket; if it is B<RPC_ANYSOCK>, then this routine "
1100 "opens a new one and sets I<sockp>. The UDP transport resends the call "
1101 "message in intervals of I<wait> time until a response is received or until "
1102 "the call times out. The total time for the call to time out is specified by "
1107 #: build/C/man3/rpc.3:479
1109 "Warning: since UDP-based RPC messages can only hold up to 8 Kbytes of "
1110 "encoded data, this transport cannot be used for procedures that take large "
1111 "arguments or return huge results."
1115 #: build/C/man3/rpc.3:485
1118 "B<CLIENT *clntudp_bufcreate(struct sockaddr_in *>I<addr>B<,>\n"
1119 "B< unsigned long >I<prognum>B<, unsigned long >I<versnum>B<,>\n"
1120 "B< struct timeval >I<wait>B<, int *>I<sockp>B<,>\n"
1121 "B< unsigned int >I<sendsize>B<, unsigned int >I<recosize>B<);>\n"
1125 #: build/C/man3/rpc.3:511
1127 "This routine creates an RPC client for the remote program I<prognum>, on "
1128 "I<versnum>; the client uses use UDP/IP as a transport. The remote program "
1129 "is located at Internet address I<addr>. If I<addr-E<gt>sin_port> is zero, "
1130 "then it is set to actual port that the remote program is listening on (the "
1131 "remote B<portmap> service is consulted for this information). The parameter "
1132 "I<sockp> is a socket; if it is B<RPC_ANYSOCK>, then this routine opens a new "
1133 "one and sets I<sockp>. The UDP transport resends the call message in "
1134 "intervals of I<wait> time until a response is received or until the call "
1135 "times out. The total time for the call to time out is specified by "
1140 #: build/C/man3/rpc.3:514 build/C/man3/rpc.3:991
1142 "This allows the user to specify the maximum packet size for sending and "
1143 "receiving UDP-based RPC messages."
1147 #: build/C/man3/rpc.3:517
1149 msgid "B<void get_myaddress(struct sockaddr_in *>I<addr>B<);>\n"
1153 #: build/C/man3/rpc.3:525
1155 "Stuff the machine's IP address into I<*addr>, without consulting the library "
1156 "routines that deal with I</etc/hosts>. The port number is always set to "
1157 "B<htons(PMAPPORT)>."
1161 #: build/C/man3/rpc.3:528
1163 msgid "B<struct pmaplist *pmap_getmaps(struct sockaddr_in *>I<addr>B<);>\n"
1167 #: build/C/man3/rpc.3:539
1169 "A user interface to the B<portmap> service, which returns a list of the "
1170 "current RPC program-to-port mappings on the host located at IP address "
1171 "I<*addr>. This routine can return NULL. The command I<rpcinfo\\ -p> uses "
1176 #: build/C/man3/rpc.3:544
1179 "B<unsigned short pmap_getport(struct sockaddr_in *>I<addr>B<,>\n"
1180 "B< unsigned long >I<prognum>B<, unsigned long "
1182 "B< unsigned int >I<protocol>B<);>\n"
1186 #: build/C/man3/rpc.3:568
1188 "A user interface to the B<portmap> service, which returns the port number on "
1189 "which waits a service that supports program number I<prognum>, version "
1190 "I<versnum>, and speaks the transport protocol associated with I<protocol>. "
1191 "The value of I<protocol> is most likely B<IPPROTO_UDP> or B<IPPROTO_TCP>. A "
1192 "return value of zero means that the mapping does not exist or that the RPC "
1193 "system failed to contact the remote B<portmap> service. In the latter case, "
1194 "the global variable I<rpc_createerr> contains the RPC status."
1198 #: build/C/man3/rpc.3:576
1201 "B<enum clnt_stat pmap_rmtcall(struct sockaddr_in *>I<addr>B<,>\n"
1202 "B< unsigned long >I<prognum>B<, unsigned long "
1204 "B< unsigned long >I<procnum>B<,>\n"
1205 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
1206 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<,>\n"
1207 "B< struct timeval >I<tout>B<, unsigned long "
1212 #: build/C/man3/rpc.3:596
1214 "A user interface to the B<portmap> service, which instructs B<portmap> on "
1215 "the host at IP address I<*addr> to make an RPC call on your behalf to a "
1216 "procedure on that host. The parameter I<*portp> will be modified to the "
1217 "program's port number if the procedure succeeds. The definitions of other "
1218 "parameters are discussed in B<callrpc>() and B<clnt_call>(). This "
1219 "procedure should be used for a \\(lqping\\(rq and nothing else. See also "
1220 "B<clnt_broadcast>()."
1224 #: build/C/man3/rpc.3:600
1227 "B<bool_t pmap_set(unsigned long >I<prognum>B<, unsigned long "
1229 "B< unsigned int >I<protocol>B<, unsigned short "
1234 #: build/C/man3/rpc.3:620
1236 "A user interface to the B<portmap> service, which establishes a mapping "
1237 "between the triple [I<prognum>,I<versnum>,I<protocol>] and I<port> on the "
1238 "machine's B<portmap> service. The value of I<protocol> is most likely "
1239 "B<IPPROTO_UDP> or B<IPPROTO_TCP>. This routine returns one if it succeeds, "
1240 "zero otherwise. Automatically done by B<svc_register>()."
1244 #: build/C/man3/rpc.3:623
1247 "B<bool_t pmap_unset(unsigned long >I<prognum>B<, unsigned long "
1248 ">I<versnum>B<);>\n"
1252 #: build/C/man3/rpc.3:635
1254 "A user interface to the B<portmap> service, which destroys all mapping "
1255 "between the triple [I<prognum>,I<versnum>,I<*>] and B<ports> on the "
1256 "machine's B<portmap> service. This routine returns one if it succeeds, zero "
1261 #: build/C/man3/rpc.3:640
1264 "B<int registerrpc(unsigned long >I<prognum>B<, unsigned long "
1266 "B< unsigned long >I<procnum>B<, char *(*>I<procname>B<)(char "
1268 "B< xdrproc_t >I<inproc>B<, xdrproc_t >I<outproc>B<);>\n"
1272 #: build/C/man3/rpc.3:660
1274 "Register procedure I<procname> with the RPC service package. If a request "
1275 "arrives for program I<prognum>, version I<versnum>, and procedure "
1276 "I<procnum>, I<procname> is called with a pointer to its parameter(s); "
1277 "I<progname> should return a pointer to its static result(s); I<inproc> is "
1278 "used to decode the parameters while I<outproc> is used to encode the "
1279 "results. This routine returns zero if the registration succeeded, -1 "
1284 #: build/C/man3/rpc.3:665
1286 "Warning: remote procedures registered in this form are accessed using the "
1287 "UDP/IP transport; see B<svcudp_create>() for restrictions."
1291 #: build/C/man3/rpc.3:668
1293 msgid "B<struct rpc_createerr >I<rpc_createerr>B<;>\n"
1297 #: build/C/man3/rpc.3:675
1299 "A global variable whose value is set by any RPC client creation routine that "
1300 "does not succeed. Use the routine B<clnt_pcreateerror>() to print the "
1305 #: build/C/man3/rpc.3:678
1307 msgid "B<void svc_destroy(SVCXPRT *>I<xprt>B<);>\n"
1311 #: build/C/man3/rpc.3:689
1313 "A macro that destroys the RPC service transport handle, I<xprt>. "
1314 "Destruction usually involves deallocation of private data structures, "
1315 "including I<xprt> itself. Use of I<xprt> is undefined after calling this "
1320 #: build/C/man3/rpc.3:692
1322 msgid "B<fd_set >I<svc_fdset>B<;>\n"
1326 #: build/C/man3/rpc.3:706
1328 "A global variable reflecting the RPC service side's read file descriptor bit "
1329 "mask; it is suitable as a parameter to the B<select>(2) system call. This "
1330 "is only of interest if a service implementor does not call B<svc_run>(), but "
1331 "rather does his own asynchronous event processing. This variable is "
1332 "read-only (do not pass its address to B<select>(2)!), yet it may change "
1333 "after calls to B<svc_getreqset>() or any creation routines."
1337 #: build/C/man3/rpc.3:709
1339 msgid "B<int >I<svc_fds>B<;>\n"
1343 #: build/C/man3/rpc.3:716
1345 "Similar to B<svc_fdset>, but limited to 32 descriptors. This interface is "
1346 "obsoleted by B<svc_fdset>."
1350 #: build/C/man3/rpc.3:719
1353 "B<svc_freeargs(SVCXPRT *>I<xprt>B<, xdrproc_t >I<inproc>B<, char "
1358 #: build/C/man3/rpc.3:726
1360 "A macro that frees any data allocated by the RPC/XDR system when it decoded "
1361 "the arguments to a service procedure using B<svc_getargs>(). This routine "
1362 "returns 1 if the results were successfully freed, and zero otherwise."
1366 #: build/C/man3/rpc.3:729
1369 "B<svc_getargs(SVCXPRT *>I<xprt>B<, xdrproc_t >I<inproc>B<, char "
1374 #: build/C/man3/rpc.3:740
1376 "A macro that decodes the arguments of an RPC request associated with the RPC "
1377 "service transport handle, I<xprt>. The parameter I<in> is the address where "
1378 "the arguments will be placed; I<inproc> is the XDR routine used to decode "
1379 "the arguments. This routine returns one if decoding succeeds, and zero "
1384 #: build/C/man3/rpc.3:743
1386 msgid "B<struct sockaddr_in *svc_getcaller(SVCXPRT *>I<xprt>B<);>\n"
1390 #: build/C/man3/rpc.3:748
1392 "The approved way of getting the network address of the caller of a procedure "
1393 "associated with the RPC service transport handle, I<xprt>."
1397 #: build/C/man3/rpc.3:751
1399 msgid "B<void svc_getreqset(fd_set *>I<rdfds>B<);>\n"
1403 #: build/C/man3/rpc.3:765
1405 "This routine is only of interest if a service implementor does not call "
1406 "B<svc_run>(), but instead implements custom asynchronous event processing. "
1407 "It is called when the B<select>(2) system call has determined that an RPC "
1408 "request has arrived on some RPC socket(s); I<rdfds> is the resultant read "
1409 "file descriptor bit mask. The routine returns when all sockets associated "
1410 "with the value of I<rdfds> have been serviced."
1414 #: build/C/man3/rpc.3:768
1416 msgid "B<void svc_getreq(int >I<rdfds>B<);>\n"
1420 #: build/C/man3/rpc.3:775
1422 "Similar to B<svc_getreqset>(), but limited to 32 descriptors. This "
1423 "interface is obsoleted by B<svc_getreqset>()."
1427 #: build/C/man3/rpc.3:781
1430 "B<bool_t svc_register(SVCXPRT *>I<xprt>B<, unsigned long >I<prognum>B<,>\n"
1431 "B< unsigned long >I<versnum>B<,>\n"
1432 "B< void (*>I<dispatch>B<)(svc_req *, SVCXPRT *),>\n"
1433 "B< unsigned long >I<protocol>B<);>\n"
1437 #: build/C/man3/rpc.3:811
1439 "Associates I<prognum> and I<versnum> with the service dispatch procedure, "
1440 "I<dispatch>. If I<protocol> is zero, the service is not registered with the "
1441 "B<portmap> service. If I<protocol> is nonzero, then a mapping of the triple "
1442 "[I<prognum>,I<versnum>,I<protocol>] to I<xprt-E<gt>xp_port> is established "
1443 "with the local B<portmap> service (generally I<protocol> is zero, "
1444 "B<IPPROTO_UDP> or B<IPPROTO_TCP>). The procedure I<dispatch> has the "
1449 #: build/C/man3/rpc.3:815
1451 msgid "dispatch(struct svc_req *request, SVCXPRT *xprt);\n"
1455 #: build/C/man3/rpc.3:821
1457 "The B<svc_register>() routine returns one if it succeeds, and zero "
1462 #: build/C/man3/rpc.3:824
1464 msgid "B<void svc_run(void);>\n"
1468 #: build/C/man3/rpc.3:834
1470 "This routine never returns. It waits for RPC requests to arrive, and calls "
1471 "the appropriate service procedure using B<svc_getreq>() when one arrives. "
1472 "This procedure is usually waiting for a B<select>(2) system call to return."
1476 #: build/C/man3/rpc.3:838
1479 "B<bool_t svc_sendreply(SVCXPRT *>I<xprt>B<, xdrproc_t >I<outproc>B<, char "
1484 #: build/C/man3/rpc.3:850
1486 "Called by an RPC service's dispatch routine to send the results of a remote "
1487 "procedure call. The parameter I<xprt> is the request's associated transport "
1488 "handle; I<outproc> is the XDR routine which is used to encode the results; "
1489 "and I<out> is the address of the results. This routine returns one if it "
1490 "succeeds, zero otherwise."
1494 #: build/C/man3/rpc.3:853
1497 "B<void svc_unregister(unsigned long >I<prognum>B<, unsigned long "
1498 ">I<versnum>B<);>\n"
1502 #: build/C/man3/rpc.3:860
1504 "Remove all mapping of the double [I<prognum>,I<versnum>] to dispatch "
1505 "routines, and of the triple [I<prognum>,I<versnum>,I<*>] to port number."
1509 #: build/C/man3/rpc.3:863
1511 msgid "B<void svcerr_auth(SVCXPRT *>I<xprt>B<, enum auth_stat >I<why>B<);>\n"
1515 #: build/C/man3/rpc.3:867
1517 "Called by a service dispatch routine that refuses to perform a remote "
1518 "procedure call due to an authentication error."
1522 #: build/C/man3/rpc.3:870
1524 msgid "B<void svcerr_decode(SVCXPRT *>I<xprt>B<);>\n"
1528 #: build/C/man3/rpc.3:876
1530 "Called by a service dispatch routine that cannot successfully decode its "
1531 "parameters. See also B<svc_getargs>()."
1535 #: build/C/man3/rpc.3:879
1537 msgid "B<void svcerr_noproc(SVCXPRT *>I<xprt>B<);>\n"
1541 #: build/C/man3/rpc.3:883
1543 "Called by a service dispatch routine that does not implement the procedure "
1544 "number that the caller requests."
1548 #: build/C/man3/rpc.3:886
1550 msgid "B<void svcerr_noprog(SVCXPRT *>I<xprt>B<);>\n"
1554 #: build/C/man3/rpc.3:890
1556 "Called when the desired program is not registered with the RPC package. "
1557 "Service implementors usually do not need this routine."
1561 #: build/C/man3/rpc.3:893
1563 msgid "B<void svcerr_progvers(SVCXPRT *>I<xprt>B<);>\n"
1567 #: build/C/man3/rpc.3:898
1569 "Called when the desired version of a program is not registered with the RPC "
1570 "package. Service implementors usually do not need this routine."
1574 #: build/C/man3/rpc.3:901
1576 msgid "B<void svcerr_systemerr(SVCXPRT *>I<xprt>B<);>\n"
1580 #: build/C/man3/rpc.3:907
1582 "Called by a service dispatch routine when it detects a system error not "
1583 "covered by any particular protocol. For example, if a service can no longer "
1584 "allocate storage, it may call this routine."
1588 #: build/C/man3/rpc.3:910
1590 msgid "B<void svcerr_weakauth(SVCXPRT *>I<xprt>B<);>\n"
1594 #: build/C/man3/rpc.3:916
1596 "Called by a service dispatch routine that refuses to perform a remote "
1597 "procedure call due to insufficient authentication parameters. The routine "
1598 "calls B<svcerr_auth(xprt, AUTH_TOOWEAK)>."
1602 #: build/C/man3/rpc.3:920
1605 "B<SVCXPRT *svcfd_create(int >I<fd>B<, unsigned int >I<sendsize>B<,>\n"
1606 "B< unsigned int >I<recvsize>B<);>\n"
1610 #: build/C/man3/rpc.3:930
1612 "Create a service on top of any open descriptor. Typically, this descriptor "
1613 "is a connected socket for a stream protocol such as TCP. I<sendsize> and "
1614 "I<recvsize> indicate sizes for the send and receive buffers. If they are "
1615 "zero, a reasonable default is chosen."
1619 #: build/C/man3/rpc.3:933
1621 msgid "B<SVCXPRT *svcraw_create(void);>\n"
1625 #: build/C/man3/rpc.3:943
1627 "This routine creates a toy RPC service transport, to which it returns a "
1628 "pointer. The transport is really a buffer within the process's address "
1629 "space, so the corresponding RPC client should live in the same address "
1630 "space; see B<clntraw_create>(). This routine allows simulation of RPC and "
1631 "acquisition of RPC overheads (such as round trip times), without any kernel "
1632 "interference. This routine returns NULL if it fails."
1636 #: build/C/man3/rpc.3:947
1639 "B<SVCXPRT *svctcp_create(int >I<sock>B<, unsigned int "
1640 ">I<send_buf_size>B<,>\n"
1641 "B< unsigned int >I<recv_buf_size>B<);>\n"
1645 #: build/C/man3/rpc.3:967
1647 "This routine creates a TCP/IP-based RPC service transport, to which it "
1648 "returns a pointer. The transport is associated with the socket I<sock>, "
1649 "which may be B<RPC_ANYSOCK>, in which case a new socket is created. If the "
1650 "socket is not bound to a local TCP port, then this routine binds it to an "
1651 "arbitrary port. Upon completion, I<xprt-E<gt>xp_sock> is the transport's "
1652 "socket descriptor, and I<xprt-E<gt>xp_port> is the transport's port number. "
1653 "This routine returns NULL if it fails. Since TCP-based RPC uses buffered "
1654 "I/O, users may specify the size of buffers; values of zero choose suitable "
1659 #: build/C/man3/rpc.3:971
1662 "B<SVCXPRT *svcudp_bufcreate(int >I<sock>B<, unsigned int >I<sendsize>B<,>\n"
1663 "B< unsigned int >I<recosize>B<);>\n"
1667 #: build/C/man3/rpc.3:988
1669 "This routine creates a UDP/IP-based RPC service transport, to which it "
1670 "returns a pointer. The transport is associated with the socket I<sock>, "
1671 "which may be B<RPC_ANYSOCK>, in which case a new socket is created. If the "
1672 "socket is not bound to a local UDP port, then this routine binds it to an "
1673 "arbitrary port. Upon completion, I<xprt-E<gt>xp_sock> is the transport's "
1674 "socket descriptor, and I<xprt-E<gt>xp_port> is the transport's port number. "
1675 "This routine returns NULL if it fails."
1679 #: build/C/man3/rpc.3:994
1681 msgid "B<SVCXPRT *svcudp_create(int >I<sock>B<);>\n"
1685 #: build/C/man3/rpc.3:999
1687 "This call is equivalent to I<svcudp_bufcreate(sock,SZ,SZ)> for some default "
1692 #: build/C/man3/rpc.3:1002
1695 "B<bool_t xdr_accepted_reply(XDR *>I<xdrs>B<, struct accepted_reply "
1700 #: build/C/man3/rpc.3:1007
1702 "Used for encoding RPC reply messages. This routine is useful for users who "
1703 "wish to generate RPC-style messages without using the RPC package."
1707 #: build/C/man3/rpc.3:1010
1710 "B<bool_t xdr_authunix_parms(XDR *>I<xdrs>B<, struct authunix_parms "
1715 #: build/C/man3/rpc.3:1016
1717 "Used for describing UNIX credentials. This routine is useful for users who "
1718 "wish to generate these credentials without using the RPC authentication "
1723 #: build/C/man3/rpc.3:1019
1725 msgid "B<void xdr_callhdr(XDR *>I<xdrs>B<, struct rpc_msg *>I<chdr>B<);>\n"
1729 #: build/C/man3/rpc.3:1024
1731 "Used for describing RPC call header messages. This routine is useful for "
1732 "users who wish to generate RPC-style messages without using the RPC package."
1736 #: build/C/man3/rpc.3:1027
1738 msgid "B<bool_t xdr_callmsg(XDR *>I<xdrs>B<, struct rpc_msg *>I<cmsg>B<);>\n"
1742 #: build/C/man3/rpc.3:1032
1744 "Used for describing RPC call messages. This routine is useful for users who "
1745 "wish to generate RPC-style messages without using the RPC package."
1749 #: build/C/man3/rpc.3:1035
1751 msgid "B<bool_t xdr_opaque_auth(XDR *>I<xdrs>B<, struct opaque_auth *>I<ap>B<);>\n"
1755 #: build/C/man3/rpc.3:1040
1757 "Used for describing RPC authentication information messages. This routine "
1758 "is useful for users who wish to generate RPC-style messages without using "
1763 #: build/C/man3/rpc.3:1043
1765 msgid "B<bool_t xdr_pmap(XDR *>I<xdrs>B<, struct pmap *>I<regs>B<);>\n"
1769 #: build/C/man3/rpc.3:1052
1771 "Used for describing parameters to various B<portmap> procedures, "
1772 "externally. This routine is useful for users who wish to generate these "
1773 "parameters without using the B<pmap> interface."
1777 #: build/C/man3/rpc.3:1055
1779 msgid "B<bool_t xdr_pmaplist(XDR *>I<xdrs>B<, struct pmaplist **>I<rp>B<);>\n"
1783 #: build/C/man3/rpc.3:1062
1785 "Used for describing a list of port mappings, externally. This routine is "
1786 "useful for users who wish to generate these parameters without using the "
1787 "B<pmap> interface."
1791 #: build/C/man3/rpc.3:1065
1794 "B<bool_t xdr_rejected_reply(XDR *>I<xdrs>B<, struct rejected_reply "
1799 #: build/C/man3/rpc.3:1070
1801 "Used for describing RPC reply messages. This routine is useful for users "
1802 "who wish to generate RPC-style messages without using the RPC package."
1806 #: build/C/man3/rpc.3:1073
1808 msgid "B<bool_t xdr_replymsg(XDR *>I<xdrs>B<, struct rpc_msg *>I<rmsg>B<);>\n"
1812 #: build/C/man3/rpc.3:1078
1814 "Used for describing RPC reply messages. This routine is useful for users "
1815 "who wish to generate RPC style messages without using the RPC package."
1819 #: build/C/man3/rpc.3:1081
1821 msgid "B<void xprt_register(SVCXPRT *>I<xprt>B<);>\n"
1825 #: build/C/man3/rpc.3:1088
1827 "After RPC service transport handles are created, they should register "
1828 "themselves with the RPC service package. This routine modifies the global "
1829 "variable I<svc_fds>. Service implementors usually do not need this routine."
1833 #: build/C/man3/rpc.3:1091
1835 msgid "B<void xprt_unregister(SVCXPRT *>I<xprt>B<);>\n"
1839 #: build/C/man3/rpc.3:1098
1841 "Before an RPC service transport handle is destroyed, it should unregister "
1842 "itself with the RPC service package. This routine modifies the global "
1843 "variable I<svc_fds>. Service implementors usually do not need this routine."
1846 #. We don't have an rpc_secure.3 page in the set at the moment -- MTK, 19 Sep 05
1847 #. .BR rpc_secure (3),
1849 #: build/C/man3/rpc.3:1102
1854 #: build/C/man3/rpc.3:1104 build/C/man3/xdr.3:542
1855 msgid "The following manuals:"
1859 #: build/C/man3/rpc.3:1106
1860 msgid "Remote Procedure Calls: Protocol Specification"
1864 #: build/C/man3/rpc.3:1108
1865 msgid "Remote Procedure Call Programming Guide"
1869 #: build/C/man3/rpc.3:1110
1870 msgid "rpcgen Programming Guide"
1874 #: build/C/man3/rpc.3:1114
1876 "I<RPC: Remote Procedure Call Protocol Specification>, RFC\\ 1050, Sun "
1877 "Microsystems, Inc., USC-ISI."
1881 #: build/C/man5/rpc.5:4
1887 #: build/C/man5/rpc.5:7
1888 msgid "rpc - RPC program number data base"
1892 #: build/C/man5/rpc.5:9
1897 #: build/C/man5/rpc.5:15
1899 "The I<rpc> file contains user readable names that can be used in place of "
1900 "RPC program numbers. Each line has the following information:"
1904 #: build/C/man5/rpc.5:17
1905 msgid "name of server for the RPC program"
1909 #: build/C/man5/rpc.5:21
1910 msgid "RPC program number"
1914 #: build/C/man5/rpc.5:25
1919 #: build/C/man5/rpc.5:31
1921 "Items are separated by any number of blanks and/or tab characters. A "
1922 "\\(aq#\\(aq indicates the beginning of a comment; characters from the "
1923 "\\(aq#\\(aq to the end of the line are not interpreted by routines which "
1928 #: build/C/man5/rpc.5:34
1930 "Here is an example of the I</etc/rpc> file from the Sun RPC Source "
1935 #: build/C/man5/rpc.5:35
1937 msgid "1.5i +0.5i +1.0i +1.0i"
1941 #: build/C/man5/rpc.5:69
1945 "# rpc 88/08/01 4.0 RPCSRC; from 1.12 88/02/07 SMI\n"
1947 "portmapper\t\t100000\tportmap sunrpc\n"
1948 "rstatd\t\t100001\trstat rstat_svc rup perfmeter\n"
1949 "rusersd\t\t100002\trusers\n"
1950 "nfs\t\t100003\tnfsprog\n"
1951 "ypserv\t\t100004\typprog\n"
1952 "mountd\t\t100005\tmount showmount\n"
1953 "ypbind\t\t100007\n"
1954 "walld\t\t100008\trwall shutdown\n"
1955 "yppasswdd\t\t100009\typpasswd\n"
1956 "etherstatd\t\t100010\tetherstat\n"
1957 "rquotad\t\t100011\trquotaprog quota rquota\n"
1958 "sprayd\t\t100012\tspray\n"
1959 "3270_mapper\t\t100013\n"
1960 "rje_mapper\t\t100014\n"
1961 "selection_svc\t\t100015\tselnsvc\n"
1962 "database_svc\t\t100016\n"
1963 "rexd\t\t100017\trex\n"
1966 "llockmgr\t\t100020\n"
1967 "nlockmgr\t\t100021\n"
1968 "x25.inr\t\t100022\n"
1969 "statmon\t\t100023\n"
1970 "status\t\t100024\n"
1971 "bootparam\t\t100026\n"
1972 "ypupdated\t\t100028\typupdate\n"
1973 "keyserv\t\t100029\tkeyserver\n"
1976 "nsemntd\t\t100039\n"
1980 #: build/C/man5/rpc.5:75
1981 msgid "RPC program number data base"
1985 #: build/C/man5/rpc.5:76
1986 msgid "B<getrpcent>(3)"
1990 #: build/C/man3/rtime.3:8
1996 #: build/C/man3/rtime.3:8
2002 #: build/C/man3/rtime.3:11
2003 msgid "rtime - get time from a remote machine"
2007 #: build/C/man3/rtime.3:14
2009 msgid "B<#include E<lt>rpc/des_crypt.hE<gt>>\n"
2013 #: build/C/man3/rtime.3:17
2016 "B<int rtime(struct sockaddr_in *>I<addrp>B<, struct rpc_timeval "
2018 "B< struct rpc_timeval *>I<timeout>B<);>\n"
2022 #: build/C/man3/rtime.3:21
2024 "This function uses the Time Server Protocol as described in RFC\\ 868 to "
2025 "obtain the time from a remote machine."
2029 #: build/C/man3/rtime.3:27
2031 "The Time Server Protocol gives the time in seconds since 00:00:00 UTC, 1 Jan "
2032 "1900, and this function subtracts the appropriate constant in order to "
2033 "convert the result to seconds since the Epoch, 1970-01-01 00:00:00 +0000 "
2038 #: build/C/man3/rtime.3:32
2040 "When I<timeout> is non-NULL, the udp/time socket (port 37) is used. "
2041 "Otherwise, the tcp/time socket (port 37) is used."
2045 #: build/C/man3/rtime.3:38
2047 "On success, 0 is returned, and the obtained 32-bit time value is stored in "
2048 "I<timep-E<gt>tv_sec>. In case of error -1 is returned, and I<errno> is set "
2053 #: build/C/man3/rtime.3:47
2055 "All errors for underlying functions (B<sendto>(2), B<poll>(2), "
2056 "B<recvfrom>(2), B<connect>(2), B<read>(2)) can occur. Moreover:"
2060 #: build/C/man3/rtime.3:47
2066 #: build/C/man3/rtime.3:50
2067 msgid "The number of returned bytes is not 4."
2071 #: build/C/man3/rtime.3:50
2073 msgid "B<ETIMEDOUT>"
2077 #: build/C/man3/rtime.3:53
2078 msgid "The waiting time as defined in timeout has expired."
2082 #: build/C/man3/rtime.3:55
2083 msgid "Only IPv4 is supported."
2087 #: build/C/man3/rtime.3:62
2089 "Some I<in.timed> versions only support TCP. Try the example program with "
2090 "I<use_tcp> set to 1."
2094 #: build/C/man3/rtime.3:64
2095 msgid "Libc5 uses the prototype"
2099 #: build/C/man3/rtime.3:66
2100 msgid "int rtime(struct sockaddr_in *, struct timeval *, struct timeval *);"
2104 #: build/C/man3/rtime.3:71
2105 msgid "and requires I<E<lt>sys/time.hE<gt>> instead of I<E<lt>rpc/auth_des.hE<gt>>."
2109 #: build/C/man3/rtime.3:74
2111 "B<rtime>() in glibc 2.2.5 and earlier does not work properly on 64-bit "
2116 #: build/C/man3/rtime.3:74
2122 #: build/C/man3/rtime.3:80
2124 "This example requires that port 37 is up and open. You may check that the "
2125 "time entry within I</etc/inetd.conf> is not commented out."
2129 #: build/C/man3/rtime.3:84
2131 "The program connects to a computer called \"linux\". Using \"localhost\" "
2132 "does not work. The result is the localtime of the computer \"linux\"."
2136 #: build/C/man3/rtime.3:93
2139 "#include E<lt>stdio.hE<gt>\n"
2140 "#include E<lt>stdlib.hE<gt>\n"
2141 "#include E<lt>errno.hE<gt>\n"
2142 "#include E<lt>string.hE<gt>\n"
2143 "#include E<lt>time.hE<gt>\n"
2144 "#include E<lt>rpc/auth_des.hE<gt>\n"
2145 "#include E<lt>netdb.hE<gt>\n"
2149 #: build/C/man3/rtime.3:96
2152 "int use_tcp = 0;\n"
2153 "char *servername = \"linux\";\n"
2157 #: build/C/man3/rtime.3:105
2163 " struct sockaddr_in name;\n"
2164 " struct rpc_timeval time1 = {0,0};\n"
2165 " struct rpc_timeval timeout = {1,0};\n"
2166 " struct hostent *hent;\n"
2171 #: build/C/man3/rtime.3:110
2174 " memset((char *) &name, 0, sizeof(name));\n"
2176 " hent = gethostbyname(servername);\n"
2177 " memcpy((char *) &name.sin_addr, hent-E<gt>h_addr, hent-E<gt>h_length);\n"
2181 #: build/C/man3/rtime.3:116
2184 " ret = rtime(&name, &time1, use_tcp ? NULL : &timeout);\n"
2185 " if (ret E<lt> 0)\n"
2186 " perror(\"rtime error\");\n"
2188 " printf(\"%s\\en\", ctime((time_t *) &time1.tv_sec));\n"
2192 #: build/C/man3/rtime.3:119
2195 " exit(EXIT_SUCCESS);\n"
2202 #: build/C/man3/rtime.3:124
2203 msgid "B<ntpdate>(1), B<inetd>(8)"
2207 #: build/C/man3/xdr.3:7
2213 #: build/C/man3/xdr.3:7
2219 #: build/C/man3/xdr.3:10
2220 msgid "xdr - library routines for external data representation"
2224 #: build/C/man3/xdr.3:16
2226 "These routines allow C programmers to describe arbitrary data structures in "
2227 "a machine-independent fashion. Data for remote procedure calls are "
2228 "transmitted using these routines."
2232 #: build/C/man3/xdr.3:20
2234 "The prototypes below are declared in I<E<lt>rpc/xdr.hE<gt>> and make use of "
2235 "the following types:"
2239 #: build/C/man3/xdr.3:33
2240 msgid "For the declaration of the I<XDR> type, see I<E<lt>rpc/xdr.hE<gt>>."
2244 #: build/C/man3/xdr.3:38
2247 "B<bool_t xdr_array(XDR *>I<xdrs>B<, char **>I<arrp>B<, unsigned int "
2249 "B< unsigned int >I<maxsize>B<, unsigned int >I<elsize>B<,>\n"
2250 "B< xdrproc_t >I<elproc>B<);>\n"
2254 #: build/C/man3/xdr.3:59
2256 "A filter primitive that translates between variable-length arrays and their "
2257 "corresponding external representations. The argument I<arrp> is the address "
2258 "of the pointer to the array, while I<sizep> is the address of the element "
2259 "count of the array; this element count cannot exceed I<maxsize>. The "
2260 "argument I<elsize> is the I<sizeof> each of the array's elements, and "
2261 "I<elproc> is an XDR filter that translates between the array elements' C "
2262 "form, and their external representation. This routine returns one if it "
2263 "succeeds, zero otherwise."
2267 #: build/C/man3/xdr.3:62
2269 msgid "B<bool_t xdr_bool(XDR *>I<xdrs>B<, bool_t *>I<bp>B<);>\n"
2273 #: build/C/man3/xdr.3:70
2275 "A filter primitive that translates between booleans (C integers) and their "
2276 "external representations. When encoding data, this filter produces values "
2277 "of either one or zero. This routine returns one if it succeeds, zero "
2282 #: build/C/man3/xdr.3:74
2285 "B<bool_t xdr_bytes(XDR *>I<xdrs>B<, char **>I<sp>B<, unsigned int "
2287 "B< unsigned int >I<maxsize>B<);>\n"
2291 #: build/C/man3/xdr.3:87
2293 "A filter primitive that translates between counted byte strings and their "
2294 "external representations. The argument I<sp> is the address of the string "
2295 "pointer. The length of the string is located at address I<sizep>; strings "
2296 "cannot be longer than I<maxsize>. This routine returns one if it succeeds, "
2301 #: build/C/man3/xdr.3:90
2303 msgid "B<bool_t xdr_char(XDR *>I<xdrs>B<, char *>I<cp>B<);>\n"
2307 #: build/C/man3/xdr.3:102
2309 "A filter primitive that translates between C characters and their external "
2310 "representations. This routine returns one if it succeeds, zero otherwise. "
2311 "Note: encoded characters are not packed, and occupy 4 bytes each. For "
2312 "arrays of characters, it is worthwhile to consider B<xdr_bytes>(), "
2313 "B<xdr_opaque>() or B<xdr_string>()."
2317 #: build/C/man3/xdr.3:105
2319 msgid "B<void xdr_destroy(XDR *>I<xdrs>B<);>\n"
2323 #: build/C/man3/xdr.3:116
2325 "A macro that invokes the destroy routine associated with the XDR stream, "
2326 "I<xdrs>. Destruction usually involves freeing private data structures "
2327 "associated with the stream. Using I<xdrs> after invoking B<xdr_destroy>() "
2332 #: build/C/man3/xdr.3:119
2334 msgid "B<bool_t xdr_double(XDR *>I<xdrs>B<, double *>I<dp>B<);>\n"
2338 #: build/C/man3/xdr.3:125
2340 "A filter primitive that translates between C I<double> precision numbers and "
2341 "their external representations. This routine returns one if it succeeds, "
2346 #: build/C/man3/xdr.3:128
2348 msgid "B<bool_t xdr_enum(XDR *>I<xdrs>B<, enum_t *>I<ep>B<);>\n"
2352 #: build/C/man3/xdr.3:134
2354 "A filter primitive that translates between C I<enum>s (actually integers) "
2355 "and their external representations. This routine returns one if it "
2356 "succeeds, zero otherwise."
2360 #: build/C/man3/xdr.3:137
2362 msgid "B<bool_t xdr_float(XDR *>I<xdrs>B<, float *>I<fp>B<);>\n"
2366 #: build/C/man3/xdr.3:143
2368 "A filter primitive that translates between C I<float>s and their external "
2369 "representations. This routine returns one if it succeeds, zero otherwise."
2373 #: build/C/man3/xdr.3:146
2375 msgid "B<void xdr_free(xdrproc_t >I<proc>B<, char *>I<objp>B<);>\n"
2379 #: build/C/man3/xdr.3:156
2381 "Generic freeing routine. The first argument is the XDR routine for the "
2382 "object being freed. The second argument is a pointer to the object itself. "
2383 "Note: the pointer passed to this routine is I<not> freed, but what it points "
2384 "to I<is> freed (recursively)."
2388 #: build/C/man3/xdr.3:159
2390 msgid "B<unsigned int xdr_getpos(XDR *>I<xdrs>B<);>\n"
2394 #: build/C/man3/xdr.3:169
2396 "A macro that invokes the get-position routine associated with the XDR "
2397 "stream, I<xdrs>. The routine returns an unsigned integer, which indicates "
2398 "the position of the XDR byte stream. A desirable feature of XDR streams is "
2399 "that simple arithmetic works with this number, although the XDR stream "
2400 "instances need not guarantee this."
2404 #: build/C/man3/xdr.3:172
2406 msgid "B<long *xdr_inline(XDR *>I<xdrs>B<, int >I<len>B<);>\n"
2410 #: build/C/man3/xdr.3:182
2412 "A macro that invokes the inline routine associated with the XDR stream, "
2413 "I<xdrs>. The routine returns a pointer to a contiguous piece of the "
2414 "stream's buffer; I<len> is the byte length of the desired buffer. Note: "
2415 "pointer is cast to I<long *>."
2419 #: build/C/man3/xdr.3:189
2421 "Warning: B<xdr_inline>() may return NULL (0) if it cannot allocate a "
2422 "contiguous piece of a buffer. Therefore the behavior may vary among stream "
2423 "instances; it exists for the sake of efficiency."
2427 #: build/C/man3/xdr.3:192
2429 msgid "B<bool_t xdr_int(XDR *>I<xdrs>B<, int *>I<ip>B<);>\n"
2433 #: build/C/man3/xdr.3:197
2435 "A filter primitive that translates between C integers and their external "
2436 "representations. This routine returns one if it succeeds, zero otherwise."
2440 #: build/C/man3/xdr.3:200
2442 msgid "B<bool_t xdr_long(XDR *>I<xdrs>B<, long *>I<lp>B<);>\n"
2446 #: build/C/man3/xdr.3:206
2448 "A filter primitive that translates between C I<long> integers and their "
2449 "external representations. This routine returns one if it succeeds, zero "
2454 #: build/C/man3/xdr.3:210
2457 "B<void xdrmem_create(XDR *>I<xdrs>B<, char *>I<addr>B<, unsigned int "
2459 "B< enum xdr_op >I<op>B<);>\n"
2463 #: build/C/man3/xdr.3:227
2465 "This routine initializes the XDR stream object pointed to by I<xdrs>. The "
2466 "stream's data is written to, or read from, a chunk of memory at location "
2467 "I<addr> whose length is no more than I<size> bytes long. The I<op> "
2468 "determines the direction of the XDR stream (either B<XDR_ENCODE>, "
2469 "B<XDR_DECODE>, or B<XDR_FREE>)."
2473 #: build/C/man3/xdr.3:230
2476 "B<bool_t xdr_opaque(XDR *>I<xdrs>B<, char *>I<cp>B<, unsigned int "
2481 #: build/C/man3/xdr.3:240
2483 "A filter primitive that translates between fixed size opaque data and its "
2484 "external representation. The argument I<cp> is the address of the opaque "
2485 "object, and I<cnt> is its size in bytes. This routine returns one if it "
2486 "succeeds, zero otherwise."
2490 #: build/C/man3/xdr.3:244
2493 "B<bool_t xdr_pointer(XDR *>I<xdrs>B<, char **>I<objpp>B<,>\n"
2494 "B< unsigned int >I<objsize>B<, xdrproc_t >I<xdrobj>B<);>\n"
2498 #: build/C/man3/xdr.3:256
2500 "Like B<xdr_reference>() except that it serializes NULL pointers, whereas "
2501 "B<xdr_reference>() does not. Thus, B<xdr_pointer>() can represent "
2502 "recursive data structures, such as binary trees or linked lists."
2506 #: build/C/man3/xdr.3:262
2509 "B<void xdrrec_create(XDR *>I<xdrs>B<, unsigned int >I<sendsize>B<,>\n"
2510 "B< unsigned int >I<recvsize>B<, char *>I<handle>B<,>\n"
2511 "B< int (*>I<readit>B<) (char *, char *, int),>\n"
2512 "B< int (*>I<writeit>B<) (char *, char *, int));>\n"
2516 #: build/C/man3/xdr.3:289
2518 "This routine initializes the XDR stream object pointed to by I<xdrs>. The "
2519 "stream's data is written to a buffer of size I<sendsize>; a value of zero "
2520 "indicates the system should use a suitable default. The stream's data is "
2521 "read from a buffer of size I<recvsize>; it too can be set to a suitable "
2522 "default by passing a zero value. When a stream's output buffer is full, "
2523 "I<writeit> is called. Similarly, when a stream's input buffer is empty, "
2524 "I<readit> is called. The behavior of these two routines is similar to the "
2525 "system calls B<read>(2) and B<write>(2), except that I<handle> is passed to "
2526 "the former routines as the first argument. Note: the XDR stream's I<op> "
2527 "field must be set by the caller."
2531 #: build/C/man3/xdr.3:293
2533 "Warning: this XDR stream implements an intermediate record stream. "
2534 "Therefore there are additional bytes in the stream to provide record "
2535 "boundary information."
2539 #: build/C/man3/xdr.3:296
2541 msgid "B<bool_t xdrrec_endofrecord(XDR *>I<xdrs>B<, int >I<sendnow>B<);>\n"
2545 #: build/C/man3/xdr.3:305
2547 "This routine can be invoked only on streams created by B<xdrrec_create>(). "
2548 "The data in the output buffer is marked as a completed record, and the "
2549 "output buffer is optionally written out if I<sendnow> is nonzero. This "
2550 "routine returns one if it succeeds, zero otherwise."
2554 #: build/C/man3/xdr.3:308
2556 msgid "B<bool_t xdrrec_eof(XDR *>I<xdrs>B<);>\n"
2560 #: build/C/man3/xdr.3:315
2562 "This routine can be invoked only on streams created by B<xdrrec_create>(). "
2563 "After consuming the rest of the current record in the stream, this routine "
2564 "returns one if the stream has no more input, zero otherwise."
2568 #: build/C/man3/xdr.3:318
2570 msgid "B<bool_t xdrrec_skiprecord(XDR *>I<xdrs>B<);>\n"
2574 #: build/C/man3/xdr.3:326
2576 "This routine can be invoked only on streams created by B<xdrrec_create>(). "
2577 "It tells the XDR implementation that the rest of the current record in the "
2578 "stream's input buffer should be discarded. This routine returns one if it "
2579 "succeeds, zero otherwise."
2583 #: build/C/man3/xdr.3:330
2586 "B<bool_t xdr_reference(XDR *>I<xdrs>B<, char **>I<pp>B<, unsigned int "
2588 "B< xdrproc_t >I<proc>B<);>\n"
2592 #: build/C/man3/xdr.3:346
2594 "A primitive that provides pointer chasing within structures. The argument "
2595 "I<pp> is the address of the pointer; I<size> is the I<sizeof> the structure "
2596 "that I<*pp> points to; and I<proc> is an XDR procedure that filters the "
2597 "structure between its C form and its external representation. This routine "
2598 "returns one if it succeeds, zero otherwise."
2602 #: build/C/man3/xdr.3:351
2604 "Warning: this routine does not understand NULL pointers. Use "
2605 "B<xdr_pointer>() instead."
2609 #: build/C/man3/xdr.3:354
2611 msgid "B<xdr_setpos(XDR *>I<xdrs>B<, unsigned int >I<pos>B<);>\n"
2615 #: build/C/man3/xdr.3:365
2617 "A macro that invokes the set position routine associated with the XDR stream "
2618 "I<xdrs>. The argument I<pos> is a position value obtained from "
2619 "B<xdr_getpos>(). This routine returns one if the XDR stream could be "
2620 "repositioned, and zero otherwise."
2624 #: build/C/man3/xdr.3:369
2626 "Warning: it is difficult to reposition some types of XDR streams, so this "
2627 "routine may fail with one type of stream and succeed with another."
2631 #: build/C/man3/xdr.3:372
2633 msgid "B<bool_t xdr_short(XDR *>I<xdrs>B<, short *>I<sp>B<);>\n"
2637 #: build/C/man3/xdr.3:378
2639 "A filter primitive that translates between C I<short> integers and their "
2640 "external representations. This routine returns one if it succeeds, zero "
2645 #: build/C/man3/xdr.3:381
2648 "B<void xdrstdio_create(XDR *>I<xdrs>B<, FILE *>I<file>B<, enum xdr_op "
2653 #: build/C/man3/xdr.3:396
2655 "This routine initializes the XDR stream object pointed to by I<xdrs>. The "
2656 "XDR stream data is written to, or read from, the I<stdio> stream I<file>. "
2657 "The argument I<op> determines the direction of the XDR stream (either "
2658 "B<XDR_ENCODE>, B<XDR_DECODE>, or B<XDR_FREE>)."
2662 #: build/C/man3/xdr.3:403
2664 "Warning: the destroy routine associated with such XDR streams calls "
2665 "B<fflush>(3) on the I<file> stream, but never B<fclose>(3)."
2669 #: build/C/man3/xdr.3:406
2672 "B<bool_t xdr_string(XDR *>I<xdrs>B<, char **>I<sp>B<, unsigned int "
2673 ">I<maxsize>B<);>\n"
2677 #: build/C/man3/xdr.3:416
2679 "A filter primitive that translates between C strings and their corresponding "
2680 "external representations. Strings cannot be longer than I<maxsize>. Note: "
2681 "I<sp> is the address of the string's pointer. This routine returns one if "
2682 "it succeeds, zero otherwise."
2686 #: build/C/man3/xdr.3:419
2688 msgid "B<bool_t xdr_u_char(XDR *>I<xdrs>B<, unsigned char *>I<ucp>B<);>\n"
2692 #: build/C/man3/xdr.3:425
2694 "A filter primitive that translates between I<unsigned> C characters and "
2695 "their external representations. This routine returns one if it succeeds, "
2700 #: build/C/man3/xdr.3:428
2702 msgid "B<bool_t xdr_u_int(XDR *>I<xdrs>B<, unsigned *>I<up>B<);>\n"
2706 #: build/C/man3/xdr.3:434
2708 "A filter primitive that translates between C I<unsigned> integers and their "
2709 "external representations. This routine returns one if it succeeds, zero "
2714 #: build/C/man3/xdr.3:437
2716 msgid "B<bool_t xdr_u_long(XDR *>I<xdrs>B<, unsigned long *>I<ulp>B<);>\n"
2720 #: build/C/man3/xdr.3:443
2722 "A filter primitive that translates between C I<unsigned long> integers and "
2723 "their external representations. This routine returns one if it succeeds, "
2728 #: build/C/man3/xdr.3:446
2730 msgid "B<bool_t xdr_u_short(XDR *>I<xdrs>B<, unsigned short *>I<usp>B<);>\n"
2734 #: build/C/man3/xdr.3:452
2736 "A filter primitive that translates between C I<unsigned short> integers and "
2737 "their external representations. This routine returns one if it succeeds, "
2742 #: build/C/man3/xdr.3:457
2745 "B<bool_t xdr_union(XDR *>I<xdrs>B<, int *>I<dscmp>B<, char *>I<unp>B<,>\n"
2746 "B< struct xdr_discrim *>I<choices>B<,>\n"
2747 "B< xdrproc_t >I<defaultarm>B<); /* may equal NULL */>\n"
2751 #: build/C/man3/xdr.3:491
2753 "A filter primitive that translates between a discriminated C I<union> and "
2754 "its corresponding external representation. It first translates the "
2755 "discriminant of the union located at I<dscmp>. This discriminant is always "
2756 "an I<enum_t>. Next the union located at I<unp> is translated. The argument "
2757 "I<choices> is a pointer to an array of B<xdr_discrim>() structures. Each "
2758 "structure contains an ordered pair of [I<value>,I<proc>]. If the union's "
2759 "discriminant is equal to the associated I<value>, then the I<proc> is called "
2760 "to translate the union. The end of the B<xdr_discrim>() structure array is "
2761 "denoted by a routine of value NULL. If the discriminant is not found in the "
2762 "I<choices> array, then the I<defaultarm> procedure is called (if it is not "
2763 "NULL). Returns one if it succeeds, zero otherwise."
2767 #: build/C/man3/xdr.3:495
2770 "B<bool_t xdr_vector(XDR *>I<xdrs>B<, char *>I<arrp>B<, unsigned int "
2772 "B< unsigned int >I<elsize>B<, xdrproc_t >I<elproc>B<);>\n"
2776 #: build/C/man3/xdr.3:514
2778 "A filter primitive that translates between fixed-length arrays and their "
2779 "corresponding external representations. The argument I<arrp> is the address "
2780 "of the pointer to the array, while I<size> is the element count of the "
2781 "array. The argument I<elsize> is the I<sizeof> each of the array's "
2782 "elements, and I<elproc> is an XDR filter that translates between the array "
2783 "elements' C form, and their external representation. This routine returns "
2784 "one if it succeeds, zero otherwise."
2788 #: build/C/man3/xdr.3:517
2790 msgid "B<bool_t xdr_void(void);>\n"
2794 #: build/C/man3/xdr.3:522
2796 "This routine always returns one. It may be passed to RPC routines that "
2797 "require a function argument, where nothing is to be done."
2801 #: build/C/man3/xdr.3:525
2803 msgid "B<bool_t xdr_wrapstring(XDR *>I<xdrs>B<, char **>I<sp>B<);>\n"
2807 #: build/C/man3/xdr.3:538
2809 "A primitive that calls B<xdr_string(xdrs, sp,MAXUN.UNSIGNED );> where "
2810 "B<MAXUN.UNSIGNED> is the maximum value of an unsigned integer. "
2811 "B<xdr_wrapstring>() is handy because the RPC package passes a maximum of "
2812 "two XDR routines as arguments, and B<xdr_string>(), one of the most "
2813 "frequently used primitives, requires three. Returns one if it succeeds, "
2818 #: build/C/man3/xdr.3:540
2823 #: build/C/man3/xdr.3:544
2824 msgid "eXternal Data Representation Standard: Protocol Specification"
2828 #: build/C/man3/xdr.3:546
2829 msgid "eXternal Data Representation: Sun Technical Notes"
2833 #: build/C/man3/xdr.3:550
2835 "I<XDR: External Data Representation Standard>, RFC\\ 1014, Sun Microsystems, "