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: 2013-09-28 04:06+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:8
26 #: build/C/man3/getrpcent.3:8
32 #: build/C/man3/getrpcent.3:8 build/C/man3/getrpcent_r.3:26 build/C/man3/getrpcport.3:8 build/C/man3/key_setsecret.3:9 build/C/man3/rpc.3:11 build/C/man5/rpc.5:8 build/C/man3/rtime.3:12 build/C/man3/xdr.3:11
34 msgid "Linux Programmer's Manual"
38 #: build/C/man3/getrpcent.3:9 build/C/man3/getrpcent_r.3:27 build/C/man3/getrpcport.3:9 build/C/man3/key_setsecret.3:10 build/C/man3/rpc.3:12 build/C/man5/rpc.5:9 build/C/man3/rtime.3:13 build/C/man3/xdr.3:12
44 #: build/C/man3/getrpcent.3:12
46 "getrpcent, getrpcbyname, getrpcbynumber, setrpcent, endrpcent - get RPC "
51 #: build/C/man3/getrpcent.3:12 build/C/man3/getrpcent_r.3:30 build/C/man3/getrpcport.3:11 build/C/man3/key_setsecret.3:13 build/C/man5/rpc.5:11 build/C/man3/rtime.3:15
57 #: build/C/man3/getrpcent.3:15 build/C/man3/getrpcent_r.3:33
59 msgid "B<#include E<lt>netdb.hE<gt>>\n"
63 #: build/C/man3/getrpcent.3:17
65 msgid "B<struct rpcent *getrpcent(void);>\n"
69 #: build/C/man3/getrpcent.3:19
71 msgid "B<struct rpcent *getrpcbyname(char *>I<name>B<);>\n"
75 #: build/C/man3/getrpcent.3:21
77 msgid "B<struct rpcent *getrpcbynumber(int >I<number>B<);>\n"
81 #: build/C/man3/getrpcent.3:23
83 msgid "B<void setrpcent(int >I<stayopen>B<);>\n"
87 #: build/C/man3/getrpcent.3:25
89 msgid "B<void endrpcent(void);>\n"
93 #: build/C/man3/getrpcent.3:26 build/C/man3/getrpcent_r.3:59 build/C/man3/getrpcport.3:16 build/C/man3/key_setsecret.3:27 build/C/man5/rpc.5:13 build/C/man3/rtime.3:22
99 #: build/C/man3/getrpcent.3:36
101 "The B<getrpcent>(), B<getrpcbyname>(), and B<getrpcbynumber>() functions "
102 "each return a pointer to an object with the following structure containing "
103 "the broken-out fields of an entry in the RPC program number data base."
107 #: build/C/man3/getrpcent.3:44
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:48
119 msgid "The members of this structure are:"
123 #: build/C/man3/getrpcent.3:49
129 #: build/C/man3/getrpcent.3:52
130 msgid "The name of the server for this RPC program."
134 #: build/C/man3/getrpcent.3:52
140 #: build/C/man3/getrpcent.3:55
141 msgid "A NULL-terminated list of alternate names for the RPC program."
145 #: build/C/man3/getrpcent.3:55
151 #: build/C/man3/getrpcent.3:58
152 msgid "The RPC program number for this service."
156 #: build/C/man3/getrpcent.3:64
158 "The B<getrpcent>() function reads the next entry from the database. A "
159 "connection is opened to the database if necessary."
163 #: build/C/man3/getrpcent.3:76
165 "The B<setrpcent>() function opens a connection to the database, and sets "
166 "the 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:80
173 msgid "The B<endrpcent>() function closes the connection to the database."
177 #: build/C/man3/getrpcent.3:88
179 "The B<getrpcbyname>() and B<getrpcbynumber>() functions sequentially "
180 "search from the beginning of the file until a matching RPC program name or "
181 "program number is found, or until end-of-file is encountered."
185 #: build/C/man3/getrpcent.3:88 build/C/man3/getrpcent_r.3:107 build/C/man3/key_setsecret.3:59 build/C/man3/rtime.3:36
191 #: build/C/man3/getrpcent.3:98
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:98 build/C/man5/rpc.5:76
205 #: build/C/man3/getrpcent.3:99 build/C/man5/rpc.5:77
211 #: build/C/man3/getrpcent.3:102
212 msgid "RPC program number database."
216 #: build/C/man3/getrpcent.3:102 build/C/man3/getrpcent_r.3:130 build/C/man3/getrpcport.3:36
218 msgid "CONFORMING TO"
222 #: build/C/man3/getrpcent.3:105 build/C/man3/getrpcport.3:39
223 msgid "Not in POSIX.1-2001. Present on the BSDs, Solaris, and many other systems."
227 #: build/C/man3/getrpcent.3:105 build/C/man3/rtime.3:75
233 #: build/C/man3/getrpcent.3:110
235 "All information is contained in a static area so it must be copied if it is "
240 #: build/C/man3/getrpcent.3:110 build/C/man3/getrpcent_r.3:134 build/C/man3/key_setsecret.3:68 build/C/man3/rpc.3:1103 build/C/man5/rpc.5:80 build/C/man3/rtime.3:126 build/C/man3/xdr.3:542
246 #: build/C/man3/getrpcent.3:115
247 msgid "B<getrpcent_r>(3), B<rpc>(5), B<rpcinfo>(8), B<ypserv>(8)"
251 #: build/C/man3/getrpcent.3:115 build/C/man3/getrpcent_r.3:137 build/C/man3/getrpcport.3:39 build/C/man3/key_setsecret.3:70 build/C/man3/rpc.3:1121 build/C/man5/rpc.5:82 build/C/man3/rtime.3:131 build/C/man3/xdr.3:555
257 #: build/C/man3/getrpcent.3:122 build/C/man3/getrpcent_r.3:144 build/C/man3/getrpcport.3:46 build/C/man3/key_setsecret.3:77 build/C/man3/rpc.3:1128 build/C/man5/rpc.5:89 build/C/man3/rtime.3:138 build/C/man3/xdr.3:562
259 "This page is part of release 3.54 of the Linux I<man-pages> project. A "
260 "description of the project, and information about reporting bugs, can be "
261 "found at \\%http://www.kernel.org/doc/man-pages/."
265 #: build/C/man3/getrpcent_r.3:26
271 #: build/C/man3/getrpcent_r.3:26
277 #: build/C/man3/getrpcent_r.3:26 build/C/man3/rtime.3:12
283 #: build/C/man3/getrpcent_r.3:30
284 msgid "getrpcent_r, getrpcbyname_r, getrpcbynumber_r - get RPC entry (reentrant)"
288 #: build/C/man3/getrpcent_r.3:36
291 "B<int getrpcent_r(struct rpcent *>I<result_buf>B<, char *>I<buf>B<,>\n"
292 "B< size_t >I<buflen>B<, struct rpcent **>I<result>B<);>\n"
296 #: build/C/man3/getrpcent_r.3:40
299 "B<int getrpcbyname_r(const char *>I<name>B<,>\n"
300 "B< struct rpcent *>I<result_buf>B<, char *>I<buf>B<,>\n"
301 "B< size_t >I<buflen>B<, struct rpcent **>I<result>B<);>\n"
305 #: build/C/man3/getrpcent_r.3:44
308 "B<int getrpcbynumber_r(int >I<number>B<,>\n"
309 "B< struct rpcent *>I<result_buf>B<, char *>I<buf>B<,>\n"
310 "B< size_t >I<buflen>B<, struct rpcent **>I<result>B<);>\n"
314 #: build/C/man3/getrpcent_r.3:49
315 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
319 #: build/C/man3/getrpcent_r.3:55
320 msgid "B<getrpcent_r>(), B<getrpcbyname_r>(), B<getrpcbynumber_r>():"
324 #: build/C/man3/getrpcent_r.3:57
325 msgid "_BSD_SOURCE || _SVID_SOURCE"
329 #: build/C/man3/getrpcent_r.3:76
331 "The B<getrpcent_r>(), B<getrpcbyname_r>(), and B<getrpcbynumber_r>() "
332 "functions are the reentrant equivalents of, respectively, B<getrpcent>(3), "
333 "B<getrpcbyname>(3), and B<getrpcbynumber>(3). They differ in the way that "
334 "the I<rpcent> structure is returned, and in the function calling signature "
335 "and return value. This manual page describes just the differences from the "
336 "nonreentrant functions."
340 #: build/C/man3/getrpcent_r.3:82
342 "Instead of returning a pointer to a statically allocated I<rpcent> structure "
343 "as the function result, these functions copy the structure into the location "
344 "pointed to by I<result_buf>."
347 #. I can find no information on the required/recommended buffer size;
348 #. the nonreentrant functions use a 1024 byte buffer -- mtk.
350 #: build/C/man3/getrpcent_r.3:99
352 "The I<buf> array is used to store the string fields pointed to by the "
353 "returned I<rpcent> structure. (The nonreentrant functions allocate these "
354 "strings in static storage.) The size of this array is specified in "
355 "I<buflen>. If I<buf> is too small, the call fails with the error B<ERANGE>, "
356 "and the caller must try again with a larger buffer. (A buffer of length "
357 "1024 bytes should be sufficient for most applications.)"
361 #: build/C/man3/getrpcent_r.3:107
363 "If the function call successfully obtains an RPC record, then I<*result> is "
364 "set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
368 #: build/C/man3/getrpcent_r.3:110
370 "On success, these functions return 0. On error, they return one of the "
371 "positive error numbers listed in ERRORS."
375 #: build/C/man3/getrpcent_r.3:118
377 "On error, record not found (B<getrpcbyname_r>(), B<getrpcbynumber_r>()), or "
378 "end of input (B<getrpcent_r>()) I<result> is set to NULL."
382 #: build/C/man3/getrpcent_r.3:118 build/C/man3/rtime.3:42
388 #: build/C/man3/getrpcent_r.3:119
394 #: build/C/man3/getrpcent_r.3:123
395 msgid "(B<getrpcent_r>()) No more records in database."
399 #: build/C/man3/getrpcent_r.3:123
405 #: build/C/man3/getrpcent_r.3:130
407 "I<buf> is too small. Try again with a larger buffer (and increased "
412 #: build/C/man3/getrpcent_r.3:134
414 "These functions are GNU extensions. Functions with similar names exist on "
415 "some other systems, though typically with different calling signatures."
419 #: build/C/man3/getrpcent_r.3:137
420 msgid "B<getrpcent>(3), B<rpc>(5)"
424 #: build/C/man3/getrpcport.3:8
430 #: build/C/man3/getrpcport.3:8
436 #: build/C/man3/getrpcport.3:11
437 msgid "getrpcport - get RPC port number"
441 #: build/C/man3/getrpcport.3:15
444 "B<int getrpcport(char *>I<host>B<, int >I<prognum>B<, int >I<versnum>B<, int "
449 #: build/C/man3/getrpcport.3:36
451 "B<getrpcport>() returns the port number for version I<versnum> of the RPC "
452 "program I<prognum> running on I<host> and using protocol I<proto>. It "
453 "returns 0 if it cannot contact the portmapper, or if I<prognum> is not "
454 "registered. If I<prognum> is registered but not with version I<versnum>, it "
455 "will still return a port number (for some version of the program) "
456 "indicating that the program is indeed registered. The version mismatch will "
457 "be detected upon the first call to the service."
461 #: build/C/man3/key_setsecret.3:9
463 msgid "KEY_SETSECRET"
467 #: build/C/man3/key_setsecret.3:9
473 #: build/C/man3/key_setsecret.3:13
475 "key_decryptsession, key_encryptsession, key_setsecret, key_gendes, "
476 "key_secretkey_is_set - interfaces to rpc keyserver daemon"
480 #: build/C/man3/key_setsecret.3:15
481 msgid "B<#include E<lt>rpc/rpc.hE<gt>>"
485 #: build/C/man3/key_setsecret.3:18
487 "B<int key_decryptsession(const char *>I<remotename>B<,> B<des_block "
492 #: build/C/man3/key_setsecret.3:21
494 "B<int key_encryptsession(const char *>I<remotename>B<,> B<des_block "
499 #: build/C/man3/key_setsecret.3:23
500 msgid "B<int key_gendes(des_block *>I<deskey>B<);>"
504 #: build/C/man3/key_setsecret.3:25
505 msgid "B<int key_setsecret(const char *>I<key>B<);>"
509 #: build/C/man3/key_setsecret.3:27
510 msgid "B<int key_secretkey_is_set(void);>"
514 #: build/C/man3/key_setsecret.3:32
516 "The functions here are used within the RPC's secure authentication mechanism "
517 "(AUTH_DES). There should be no need for user programs to use this "
522 #: build/C/man3/key_setsecret.3:39
524 "The function B<key_decryptsession>() uses the (remote) server netname and "
525 "takes the DES key for decrypting. It uses the public key of the server and "
526 "the secret key associated with the effective UID of the calling process."
530 #: build/C/man3/key_setsecret.3:46
532 "The function B<key_encryptsession>() is the inverse of "
533 "B<key_decryptsession>(). It encrypts the DES keys with the public key of "
534 "the server and the secret key associated with the effective UID of the "
539 #: build/C/man3/key_setsecret.3:50
541 "The function B<key_gendes>() is used to ask the keyserver for a secure "
546 #: build/C/man3/key_setsecret.3:54
548 "The function B<key_setsecret>() is used to set the key for the effective "
549 "UID of the calling process."
553 #: build/C/man3/key_setsecret.3:59
555 "The function B<key_secretkey_is_set>() can be used to determine whether a "
556 "key has been set for the effective UID of the calling process."
560 #: build/C/man3/key_setsecret.3:61
561 msgid "These functions return 1 on success and 0 on failure."
565 #: build/C/man3/key_setsecret.3:61 build/C/man3/rtime.3:57
571 #: build/C/man3/key_setsecret.3:66
573 "Note that we talk about two types of encryption here. One is asymmetric "
574 "using a public and secret key. The other is symmetric, the 64-bit DES."
578 #: build/C/man3/key_setsecret.3:68
579 msgid "These routines were part of the Linux/Doors-project, abandoned by now."
583 #: build/C/man3/key_setsecret.3:70
588 #: build/C/man3/rpc.3:11 build/C/man5/rpc.5:8
594 #: build/C/man3/rpc.3:11
600 #: build/C/man3/rpc.3:14
601 msgid "rpc - library routines for remote procedure calls"
605 #: build/C/man3/rpc.3:14 build/C/man3/xdr.3:14
607 msgid "SYNOPSIS AND DESCRIPTION"
611 #. We don't have an rpc_secure.3 page at the moment -- MTK, 19 Sep 05
612 #. Routines that are used for Secure RPC (DES authentication) are described in
613 #. .BR rpc_secure (3).
614 #. Secure RPC can be used only if DES encryption is available.
616 #: build/C/man3/rpc.3:26
618 "These routines allow C programs to make procedure calls on other machines "
619 "across the network. First, the client calls a procedure to send a data "
620 "packet to the server. Upon receipt of the packet, the server calls a "
621 "dispatch routine to perform the requested service, and then sends back a "
622 "reply. Finally, the procedure call returns to the client."
626 #: build/C/man3/rpc.3:29
628 "To take use of these routines, include the header file "
629 "I<E<lt>rpc/rpc.hE<gt>>."
633 #: build/C/man3/rpc.3:31
634 msgid "The prototypes below make use of the following types:"
638 #: build/C/man3/rpc.3:35 build/C/man3/xdr.3:28
640 msgid "B<typedef int >I<bool_t>B<;>\n"
644 #: build/C/man3/rpc.3:37
646 msgid "B<typedef bool_t (*>I<xdrproc_t>B<) (XDR *, void *, ...);>\n"
650 #: build/C/man3/rpc.3:40
653 "B<typedef bool_t (*>I<resultproc_t>B<) (caddr_t >I<resp>B<,>\n"
654 "B< struct sockaddr_in *>I<raddr>B<);>\n"
658 #: build/C/man3/rpc.3:50
660 "See the header files for the declarations of the I<AUTH>, I<CLIENT>, "
661 "I<SVCXPRT>, and I<XDR> types."
665 #: build/C/man3/rpc.3:53
667 msgid "B<void auth_destroy(AUTH *>I<auth>B<);>\n"
671 #: build/C/man3/rpc.3:62
673 "A macro that destroys the authentication information associated with "
674 "I<auth>. Destruction usually involves deallocation of private data "
675 "structures. The use of I<auth> is undefined after calling "
680 #: build/C/man3/rpc.3:65
682 msgid "B<AUTH *authnone_create(void);>\n"
686 #: build/C/man3/rpc.3:71
688 "Create and return an RPC authentication handle that passes nonusable "
689 "authentication information with each remote procedure call. This is the "
690 "default authentication used by RPC."
694 #: build/C/man3/rpc.3:75
697 "B<AUTH *authunix_create(char *>I<host>B<, int >I<uid>B<, int >I<gid>B<,>\n"
698 "B< int >I<len>B<, int *>I<aup_gids>B<);>\n"
702 #: build/C/man3/rpc.3:91
704 "Create and return an RPC authentication handle that contains authentication "
705 "information. The parameter I<host> is the name of the machine on which the "
706 "information was created; I<uid> is the user's user ID; I<gid> is the user's "
707 "current group ID; I<len> and I<aup_gids> refer to a counted array of groups "
708 "to which the user belongs. It is easy to impersonate a user."
712 #: build/C/man3/rpc.3:94
714 msgid "B<AUTH *authunix_create_default(void);>\n"
718 #: build/C/man3/rpc.3:99
719 msgid "Calls B<authunix_create>() with the appropriate parameters."
723 #: build/C/man3/rpc.3:105
726 "B<int callrpc(char *>I<host>B<, unsigned long >I<prognum>B<,>\n"
727 "B< unsigned long >I<versnum>B<, unsigned long >I<procnum>B<,>\n"
728 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
729 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<);>\n"
733 #: build/C/man3/rpc.3:129
735 "Call the remote procedure associated with I<prognum>, I<versnum>, and "
736 "I<procnum> on the machine, I<host>. The parameter I<in> is the address of "
737 "the procedure's argument(s), and I<out> is the address of where to place the "
738 "result(s); I<inproc> is used to encode the procedure's parameters, and "
739 "I<outproc> is used to decode the procedure's results. This routine returns "
740 "zero if it succeeds, or the value of B<enum clnt_stat> cast to an integer if "
741 "it fails. The routine B<clnt_perrno>() is handy for translating failure "
742 "statuses into messages."
746 #: build/C/man3/rpc.3:135
748 "Warning: calling remote procedures with this routine uses UDP/IP as a "
749 "transport; see B<clntudp_create>() for restrictions. You do not have "
750 "control of timeouts or authentication using this routine."
754 #: build/C/man3/rpc.3:142
757 "B<enum clnt_stat clnt_broadcast(unsigned long >I<prognum>B<,>\n"
758 "B< unsigned long >I<versnum>B<, unsigned long "
760 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
761 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<,>\n"
762 "B< resultproc_t >I<eachresult>B<);>\n"
766 #: build/C/man3/rpc.3:151
768 "Like B<callrpc>(), except the call message is broadcast to all locally "
769 "connected broadcast nets. Each time it receives a response, this routine "
770 "calls B<eachresult>(), whose form is:"
774 #: build/C/man3/rpc.3:155
776 msgid "B<eachresult(char *>I<out>B<, struct sockaddr_in *>I<addr>B<);>\n"
780 #: build/C/man3/rpc.3:172
782 "where I<out> is the same as I<out> passed to B<clnt_broadcast>(), except "
783 "that the remote procedure's output is decoded there; I<addr> points to the "
784 "address of the machine that sent the results. If B<eachresult>() returns "
785 "zero, B<clnt_broadcast>() waits for more replies; otherwise it returns with "
786 "appropriate status."
790 #: build/C/man3/rpc.3:176
792 "Warning: broadcast sockets are limited in size to the maximum transfer unit "
793 "of the data link. For ethernet, this value is 1500 bytes."
797 #: build/C/man3/rpc.3:182
800 "B<enum clnt_stat clnt_call(CLIENT *>I<clnt>B<, unsigned long "
802 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
803 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<,>\n"
804 "B< struct timeval >I<tout>B<);>\n"
808 #: build/C/man3/rpc.3:201
810 "A macro that calls the remote procedure I<procnum> associated with the "
811 "client handle, I<clnt>, which is obtained with an RPC client creation "
812 "routine such as B<clnt_create>(). The parameter I<in> is the address of the "
813 "procedure's argument(s), and I<out> is the address of where to place the "
814 "result(s); I<inproc> is used to encode the procedure's parameters, and "
815 "I<outproc> is used to decode the procedure's results; I<tout> is the time "
816 "allowed for results to come back."
820 #: build/C/man3/rpc.3:204
822 msgid "B<clnt_destroy(CLIENT *>I<clnt>B<);>\n"
826 #: build/C/man3/rpc.3:217
828 "A macro that destroys the client's RPC handle. Destruction usually involves "
829 "deallocation of private data structures, including I<clnt> itself. Use of "
830 "I<clnt> is undefined after calling B<clnt_destroy>(). If the RPC library "
831 "opened the associated socket, it will close it also. Otherwise, the socket "
836 #: build/C/man3/rpc.3:221
839 "B<CLIENT *clnt_create(char *>I<host>B<, unsigned long >I<prog>B<,>\n"
840 "B< unsigned long >I<vers>B<, char *>I<proto>B<);>\n"
844 #: build/C/man3/rpc.3:232
846 "Generic client creation routine. I<host> identifies the name of the remote "
847 "host where the server is located. I<proto> indicates which kind of "
848 "transport protocol to use. The currently supported values for this field "
849 "are \\(lqudp\\(rq and \\(lqtcp\\(rq. Default timeouts are set, but can be "
850 "modified using B<clnt_control>()."
854 #: build/C/man3/rpc.3:237
856 "Warning: Using UDP has its shortcomings. Since UDP-based RPC messages can "
857 "hold only up to 8 Kbytes of encoded data, this transport cannot be used for "
858 "procedures that take large arguments or return huge results."
862 #: build/C/man3/rpc.3:240
864 msgid "B<bool_t clnt_control(CLIENT *>I<cl>B<, int >I<req>B<, char *>I<info>B<);>\n"
868 #: build/C/man3/rpc.3:251
870 "A macro used to change or retrieve various information about a client "
871 "object. I<req> indicates the type of operation, and I<info> is a pointer to "
872 "the information. For both UDP and TCP, the supported values of I<req> and "
873 "their argument types and what they do are:"
877 #: build/C/man3/rpc.3:256
880 "B<CLSET_TIMEOUT> I<struct timeval> // set total timeout\n"
881 "B<CLGET_TIMEOUT> I<struct timeval> // get total timeout\n"
885 #: build/C/man3/rpc.3:264
887 "Note: if you set the timeout using B<clnt_control>(), the timeout parameter "
888 "passed to B<clnt_call>() will be ignored in all future calls."
892 #: build/C/man3/rpc.3:268
894 msgid "B<CLGET_SERVER_ADDR> I<struct sockaddr_in > // get server's address\n"
898 #: build/C/man3/rpc.3:272
899 msgid "The following operations are valid for UDP only:"
903 #: build/C/man3/rpc.3:277
906 "B<CLSET_RETRY_TIMEOUT> I<struct timeval> // set the retry timeout\n"
907 "B<CLGET_RETRY_TIMEOUT> I<struct timeval> // get the retry timeout\n"
911 #: build/C/man3/rpc.3:283
913 "The retry timeout is the time that \"UDP RPC\" waits for the server to reply "
914 "before retransmitting the request."
918 #: build/C/man3/rpc.3:286
921 "B<clnt_freeres(CLIENT * >I<clnt>B<, xdrproc_t >I<outproc>B<, char "
926 #: build/C/man3/rpc.3:297
928 "A macro that frees any data allocated by the RPC/XDR system when it decoded "
929 "the results of an RPC call. The parameter I<out> is the address of the "
930 "results, and I<outproc> is the XDR routine describing the results. This "
931 "routine returns one if the results were successfully freed, and zero "
936 #: build/C/man3/rpc.3:300
938 msgid "B<void clnt_geterr(CLIENT *>I<clnt>B<, struct rpc_err *>I<errp>B<);>\n"
942 #: build/C/man3/rpc.3:305
944 "A macro that copies the error structure out of the client handle to the "
945 "structure at address I<errp>."
949 #: build/C/man3/rpc.3:308
951 msgid "B<void clnt_pcreateerror(char *>I<s>B<);>\n"
955 #: build/C/man3/rpc.3:322
957 "Print a message to standard error indicating why a client RPC handle could "
958 "not be created. The message is prepended with string I<s> and a colon. "
959 "Used when a B<clnt_create>(), B<clntraw_create>(), B<clnttcp_create>(), or "
960 "B<clntudp_create>() call fails."
964 #: build/C/man3/rpc.3:325
966 msgid "B<void clnt_perrno(enum clnt_stat >I<stat>B<);>\n"
970 #: build/C/man3/rpc.3:332
972 "Print a message to standard error corresponding to the condition indicated "
973 "by I<stat>. Used after B<callrpc>()."
977 #: build/C/man3/rpc.3:335
979 msgid "B<clnt_perror(CLIENT *>I<clnt>B<, char *>I<s>B<);>\n"
983 #: build/C/man3/rpc.3:345
985 "Print a message to standard error indicating why an RPC call failed; I<clnt> "
986 "is the handle used to do the call. The message is prepended with string "
987 "I<s> and a colon. Used after B<clnt_call>()."
991 #: build/C/man3/rpc.3:348
993 msgid "B<char *clnt_spcreateerror(char *>I<s>B<);>\n"
997 #: build/C/man3/rpc.3:353
999 "Like B<clnt_pcreateerror>(), except that it returns a string instead of "
1000 "printing to the standard error."
1004 #: build/C/man3/rpc.3:355 build/C/man3/rpc.3:395
1005 msgid "Bugs: returns pointer to static data that is overwritten on each call."
1009 #: build/C/man3/rpc.3:358
1011 msgid "B<char *clnt_sperrno(enum clnt_stat >I<stat>B<);>\n"
1015 #: build/C/man3/rpc.3:365
1017 "Take the same arguments as B<clnt_perrno>(), but instead of sending a "
1018 "message to the standard error indicating why an RPC call failed, return a "
1019 "pointer to a string which contains the message. The string ends with a "
1024 #: build/C/man3/rpc.3:383
1026 "B<clnt_sperrno>() is used instead of B<clnt_perrno>() if the program does "
1027 "not have a standard error (as a program running as a server quite likely "
1028 "does not), or if the programmer does not want the message to be output with "
1029 "B<printf>(3), or if a message format different than that supported by "
1030 "B<clnt_perrno>() is to be used. Note: unlike B<clnt_sperror>() and "
1031 "B<clnt_spcreaterror>(), B<clnt_sperrno>() returns pointer to static data, "
1032 "but the result will not get overwritten on each call."
1036 #: build/C/man3/rpc.3:386
1038 msgid "B<char *clnt_sperror(CLIENT *>I<rpch>B<, char *>I<s>B<);>\n"
1042 #: build/C/man3/rpc.3:393
1044 "Like B<clnt_perror>(), except that (like B<clnt_sperrno>()) it returns a "
1045 "string instead of printing to standard error."
1049 #: build/C/man3/rpc.3:399
1052 "B<CLIENT *clntraw_create(unsigned long >I<prognum>B<, unsigned long "
1053 ">I<versnum>B<);>\n"
1057 #: build/C/man3/rpc.3:412
1059 "This routine creates a toy RPC client for the remote program I<prognum>, "
1060 "version I<versnum>. The transport used to pass messages to the service is "
1061 "actually a buffer within the process's address space, so the corresponding "
1062 "RPC server should live in the same address space; see B<svcraw_create>(). "
1063 "This allows simulation of RPC and acquisition of RPC overheads, such as "
1064 "round trip times, without any kernel interference. This routine returns "
1069 #: build/C/man3/rpc.3:418
1072 "B<CLIENT *clnttcp_create(struct sockaddr_in *>I<addr>B<,>\n"
1073 "B< unsigned long >I<prognum>B<, unsigned long "
1075 "B< int *>I<sockp>B<, unsigned int >I<sendsz>B<, unsigned int "
1079 #. The following inline font conversion is necessary for the hyphen indicator
1081 #: build/C/man3/rpc.3:448
1083 "This routine creates an RPC client for the remote program I<prognum>, "
1084 "version I<versnum>; the client uses TCP/IP as a transport. The remote "
1085 "program is located at Internet address I<*addr>. If I<addr-E<gt>sin_port> "
1086 "is zero, then it is set to the actual port that the remote program is "
1087 "listening on (the remote B<portmap> service is consulted for this "
1088 "information). The parameter I<sockp> is a socket; if it is B<RPC_ANYSOCK>, "
1089 "then this routine opens a new one and sets I<sockp>. Since TCP-based RPC "
1090 "uses buffered I/O, the user may specify the size of the send and receive "
1091 "buffers with the parameters I<sendsz> and I<recvsz>; values of zero choose "
1092 "suitable defaults. This routine returns NULL if it fails."
1096 #: build/C/man3/rpc.3:453
1099 "B<CLIENT *clntudp_create(struct sockaddr_in *>I<addr>B<,>\n"
1100 "B< unsigned long >I<prognum>B<, unsigned long "
1102 "B< struct timeval >I<wait>B<, int *>I<sockp>B<);>\n"
1106 #: build/C/man3/rpc.3:479
1108 "This routine creates an RPC client for the remote program I<prognum>, "
1109 "version I<versnum>; the client uses use UDP/IP as a transport. The remote "
1110 "program is located at Internet address I<addr>. If I<addr-E<gt>sin_port> is "
1111 "zero, then it is set to actual port that the remote program is listening on "
1112 "(the remote B<portmap> service is consulted for this information). The "
1113 "parameter I<sockp> is a socket; if it is B<RPC_ANYSOCK>, then this routine "
1114 "opens a new one and sets I<sockp>. The UDP transport resends the call "
1115 "message in intervals of I<wait> time until a response is received or until "
1116 "the call times out. The total time for the call to time out is specified by "
1121 #: build/C/man3/rpc.3:483
1123 "Warning: since UDP-based RPC messages can hold only up to 8 Kbytes of "
1124 "encoded data, this transport cannot be used for procedures that take large "
1125 "arguments or return huge results."
1129 #: build/C/man3/rpc.3:489
1132 "B<CLIENT *clntudp_bufcreate(struct sockaddr_in *>I<addr>B<,>\n"
1133 "B< unsigned long >I<prognum>B<, unsigned long >I<versnum>B<,>\n"
1134 "B< struct timeval >I<wait>B<, int *>I<sockp>B<,>\n"
1135 "B< unsigned int >I<sendsize>B<, unsigned int >I<recosize>B<);>\n"
1139 #: build/C/man3/rpc.3:515
1141 "This routine creates an RPC client for the remote program I<prognum>, on "
1142 "I<versnum>; the client uses use UDP/IP as a transport. The remote program "
1143 "is located at Internet address I<addr>. If I<addr-E<gt>sin_port> is zero, "
1144 "then it is set to actual port that the remote program is listening on (the "
1145 "remote B<portmap> service is consulted for this information). The parameter "
1146 "I<sockp> is a socket; if it is B<RPC_ANYSOCK>, then this routine opens a new "
1147 "one and sets I<sockp>. The UDP transport resends the call message in "
1148 "intervals of I<wait> time until a response is received or until the call "
1149 "times out. The total time for the call to time out is specified by "
1154 #: build/C/man3/rpc.3:518 build/C/man3/rpc.3:995
1156 "This allows the user to specify the maximum packet size for sending and "
1157 "receiving UDP-based RPC messages."
1161 #: build/C/man3/rpc.3:521
1163 msgid "B<void get_myaddress(struct sockaddr_in *>I<addr>B<);>\n"
1167 #: build/C/man3/rpc.3:529
1169 "Stuff the machine's IP address into I<*addr>, without consulting the library "
1170 "routines that deal with I</etc/hosts>. The port number is always set to "
1171 "B<htons(PMAPPORT)>."
1175 #: build/C/man3/rpc.3:532
1177 msgid "B<struct pmaplist *pmap_getmaps(struct sockaddr_in *>I<addr>B<);>\n"
1181 #: build/C/man3/rpc.3:543
1183 "A user interface to the B<portmap> service, which returns a list of the "
1184 "current RPC program-to-port mappings on the host located at IP address "
1185 "I<*addr>. This routine can return NULL. The command I<rpcinfo\\ -p> uses "
1190 #: build/C/man3/rpc.3:548
1193 "B<unsigned short pmap_getport(struct sockaddr_in *>I<addr>B<,>\n"
1194 "B< unsigned long >I<prognum>B<, unsigned long "
1196 "B< unsigned int >I<protocol>B<);>\n"
1200 #: build/C/man3/rpc.3:572
1202 "A user interface to the B<portmap> service, which returns the port number on "
1203 "which waits a service that supports program number I<prognum>, version "
1204 "I<versnum>, and speaks the transport protocol associated with I<protocol>. "
1205 "The value of I<protocol> is most likely B<IPPROTO_UDP> or B<IPPROTO_TCP>. A "
1206 "return value of zero means that the mapping does not exist or that the RPC "
1207 "system failed to contact the remote B<portmap> service. In the latter case, "
1208 "the global variable I<rpc_createerr> contains the RPC status."
1212 #: build/C/man3/rpc.3:580
1215 "B<enum clnt_stat pmap_rmtcall(struct sockaddr_in *>I<addr>B<,>\n"
1216 "B< unsigned long >I<prognum>B<, unsigned long "
1218 "B< unsigned long >I<procnum>B<,>\n"
1219 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
1220 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<,>\n"
1221 "B< struct timeval >I<tout>B<, unsigned long "
1226 #: build/C/man3/rpc.3:600
1228 "A user interface to the B<portmap> service, which instructs B<portmap> on "
1229 "the host at IP address I<*addr> to make an RPC call on your behalf to a "
1230 "procedure on that host. The parameter I<*portp> will be modified to the "
1231 "program's port number if the procedure succeeds. The definitions of other "
1232 "parameters are discussed in B<callrpc>() and B<clnt_call>(). This "
1233 "procedure should be used for a \\(lqping\\(rq and nothing else. See also "
1234 "B<clnt_broadcast>()."
1238 #: build/C/man3/rpc.3:604
1241 "B<bool_t pmap_set(unsigned long >I<prognum>B<, unsigned long "
1243 "B< unsigned int >I<protocol>B<, unsigned short "
1248 #: build/C/man3/rpc.3:624
1250 "A user interface to the B<portmap> service, which establishes a mapping "
1251 "between the triple [I<prognum>,I<versnum>,I<protocol>] and I<port> on the "
1252 "machine's B<portmap> service. The value of I<protocol> is most likely "
1253 "B<IPPROTO_UDP> or B<IPPROTO_TCP>. This routine returns one if it succeeds, "
1254 "zero otherwise. Automatically done by B<svc_register>()."
1258 #: build/C/man3/rpc.3:627
1261 "B<bool_t pmap_unset(unsigned long >I<prognum>B<, unsigned long "
1262 ">I<versnum>B<);>\n"
1266 #: build/C/man3/rpc.3:639
1268 "A user interface to the B<portmap> service, which destroys all mapping "
1269 "between the triple [I<prognum>,I<versnum>,I<*>] and B<ports> on the "
1270 "machine's B<portmap> service. This routine returns one if it succeeds, zero "
1275 #: build/C/man3/rpc.3:644
1278 "B<int registerrpc(unsigned long >I<prognum>B<, unsigned long "
1280 "B< unsigned long >I<procnum>B<, char *(*>I<procname>B<)(char "
1282 "B< xdrproc_t >I<inproc>B<, xdrproc_t >I<outproc>B<);>\n"
1286 #: build/C/man3/rpc.3:664
1288 "Register procedure I<procname> with the RPC service package. If a request "
1289 "arrives for program I<prognum>, version I<versnum>, and procedure "
1290 "I<procnum>, I<procname> is called with a pointer to its parameter(s); "
1291 "I<progname> should return a pointer to its static result(s); I<inproc> is "
1292 "used to decode the parameters while I<outproc> is used to encode the "
1293 "results. This routine returns zero if the registration succeeded, -1 "
1298 #: build/C/man3/rpc.3:669
1300 "Warning: remote procedures registered in this form are accessed using the "
1301 "UDP/IP transport; see B<svcudp_create>() for restrictions."
1305 #: build/C/man3/rpc.3:672
1307 msgid "B<struct rpc_createerr >I<rpc_createerr>B<;>\n"
1311 #: build/C/man3/rpc.3:679
1313 "A global variable whose value is set by any RPC client creation routine that "
1314 "does not succeed. Use the routine B<clnt_pcreateerror>() to print the "
1319 #: build/C/man3/rpc.3:682
1321 msgid "B<void svc_destroy(SVCXPRT *>I<xprt>B<);>\n"
1325 #: build/C/man3/rpc.3:693
1327 "A macro that destroys the RPC service transport handle, I<xprt>. "
1328 "Destruction usually involves deallocation of private data structures, "
1329 "including I<xprt> itself. Use of I<xprt> is undefined after calling this "
1334 #: build/C/man3/rpc.3:696
1336 msgid "B<fd_set >I<svc_fdset>B<;>\n"
1340 #: build/C/man3/rpc.3:710
1342 "A global variable reflecting the RPC service side's read file descriptor bit "
1343 "mask; it is suitable as a parameter to the B<select>(2) system call. This "
1344 "is of interest only if a service implementor does not call B<svc_run>(), but "
1345 "rather does his own asynchronous event processing. This variable is "
1346 "read-only (do not pass its address to B<select>(2)!), yet it may change "
1347 "after calls to B<svc_getreqset>() or any creation routines."
1351 #: build/C/man3/rpc.3:713
1353 msgid "B<int >I<svc_fds>B<;>\n"
1357 #: build/C/man3/rpc.3:720
1359 "Similar to B<svc_fdset>, but limited to 32 descriptors. This interface is "
1360 "obsoleted by B<svc_fdset>."
1364 #: build/C/man3/rpc.3:723
1367 "B<svc_freeargs(SVCXPRT *>I<xprt>B<, xdrproc_t >I<inproc>B<, char "
1372 #: build/C/man3/rpc.3:730
1374 "A macro that frees any data allocated by the RPC/XDR system when it decoded "
1375 "the arguments to a service procedure using B<svc_getargs>(). This routine "
1376 "returns 1 if the results were successfully freed, and zero otherwise."
1380 #: build/C/man3/rpc.3:733
1383 "B<svc_getargs(SVCXPRT *>I<xprt>B<, xdrproc_t >I<inproc>B<, char "
1388 #: build/C/man3/rpc.3:744
1390 "A macro that decodes the arguments of an RPC request associated with the RPC "
1391 "service transport handle, I<xprt>. The parameter I<in> is the address where "
1392 "the arguments will be placed; I<inproc> is the XDR routine used to decode "
1393 "the arguments. This routine returns one if decoding succeeds, and zero "
1398 #: build/C/man3/rpc.3:747
1400 msgid "B<struct sockaddr_in *svc_getcaller(SVCXPRT *>I<xprt>B<);>\n"
1404 #: build/C/man3/rpc.3:752
1406 "The approved way of getting the network address of the caller of a procedure "
1407 "associated with the RPC service transport handle, I<xprt>."
1411 #: build/C/man3/rpc.3:755
1413 msgid "B<void svc_getreqset(fd_set *>I<rdfds>B<);>\n"
1417 #: build/C/man3/rpc.3:769
1419 "This routine is of interest only if a service implementor does not call "
1420 "B<svc_run>(), but instead implements custom asynchronous event processing. "
1421 "It is called when the B<select>(2) system call has determined that an RPC "
1422 "request has arrived on some RPC socket(s); I<rdfds> is the resultant read "
1423 "file descriptor bit mask. The routine returns when all sockets associated "
1424 "with the value of I<rdfds> have been serviced."
1428 #: build/C/man3/rpc.3:772
1430 msgid "B<void svc_getreq(int >I<rdfds>B<);>\n"
1434 #: build/C/man3/rpc.3:779
1436 "Similar to B<svc_getreqset>(), but limited to 32 descriptors. This "
1437 "interface is obsoleted by B<svc_getreqset>()."
1441 #: build/C/man3/rpc.3:785
1444 "B<bool_t svc_register(SVCXPRT *>I<xprt>B<, unsigned long >I<prognum>B<,>\n"
1445 "B< unsigned long >I<versnum>B<,>\n"
1446 "B< void (*>I<dispatch>B<)(svc_req *, SVCXPRT *),>\n"
1447 "B< unsigned long >I<protocol>B<);>\n"
1451 #: build/C/man3/rpc.3:815
1453 "Associates I<prognum> and I<versnum> with the service dispatch procedure, "
1454 "I<dispatch>. If I<protocol> is zero, the service is not registered with the "
1455 "B<portmap> service. If I<protocol> is nonzero, then a mapping of the triple "
1456 "[I<prognum>,I<versnum>,I<protocol>] to I<xprt-E<gt>xp_port> is established "
1457 "with the local B<portmap> service (generally I<protocol> is zero, "
1458 "B<IPPROTO_UDP> or B<IPPROTO_TCP>). The procedure I<dispatch> has the "
1463 #: build/C/man3/rpc.3:819
1465 msgid "dispatch(struct svc_req *request, SVCXPRT *xprt);\n"
1469 #: build/C/man3/rpc.3:825
1471 "The B<svc_register>() routine returns one if it succeeds, and zero "
1476 #: build/C/man3/rpc.3:828
1478 msgid "B<void svc_run(void);>\n"
1482 #: build/C/man3/rpc.3:838
1484 "This routine never returns. It waits for RPC requests to arrive, and calls "
1485 "the appropriate service procedure using B<svc_getreq>() when one arrives. "
1486 "This procedure is usually waiting for a B<select>(2) system call to return."
1490 #: build/C/man3/rpc.3:842
1493 "B<bool_t svc_sendreply(SVCXPRT *>I<xprt>B<, xdrproc_t >I<outproc>B<, char "
1498 #: build/C/man3/rpc.3:854
1500 "Called by an RPC service's dispatch routine to send the results of a remote "
1501 "procedure call. The parameter I<xprt> is the request's associated transport "
1502 "handle; I<outproc> is the XDR routine which is used to encode the results; "
1503 "and I<out> is the address of the results. This routine returns one if it "
1504 "succeeds, zero otherwise."
1508 #: build/C/man3/rpc.3:857
1511 "B<void svc_unregister(unsigned long >I<prognum>B<, unsigned long "
1512 ">I<versnum>B<);>\n"
1516 #: build/C/man3/rpc.3:864
1518 "Remove all mapping of the double [I<prognum>,I<versnum>] to dispatch "
1519 "routines, and of the triple [I<prognum>,I<versnum>,I<*>] to port number."
1523 #: build/C/man3/rpc.3:867
1525 msgid "B<void svcerr_auth(SVCXPRT *>I<xprt>B<, enum auth_stat >I<why>B<);>\n"
1529 #: build/C/man3/rpc.3:871
1531 "Called by a service dispatch routine that refuses to perform a remote "
1532 "procedure call due to an authentication error."
1536 #: build/C/man3/rpc.3:874
1538 msgid "B<void svcerr_decode(SVCXPRT *>I<xprt>B<);>\n"
1542 #: build/C/man3/rpc.3:880
1544 "Called by a service dispatch routine that cannot successfully decode its "
1545 "parameters. See also B<svc_getargs>()."
1549 #: build/C/man3/rpc.3:883
1551 msgid "B<void svcerr_noproc(SVCXPRT *>I<xprt>B<);>\n"
1555 #: build/C/man3/rpc.3:887
1557 "Called by a service dispatch routine that does not implement the procedure "
1558 "number that the caller requests."
1562 #: build/C/man3/rpc.3:890
1564 msgid "B<void svcerr_noprog(SVCXPRT *>I<xprt>B<);>\n"
1568 #: build/C/man3/rpc.3:894
1570 "Called when the desired program is not registered with the RPC package. "
1571 "Service implementors usually do not need this routine."
1575 #: build/C/man3/rpc.3:897
1577 msgid "B<void svcerr_progvers(SVCXPRT *>I<xprt>B<);>\n"
1581 #: build/C/man3/rpc.3:902
1583 "Called when the desired version of a program is not registered with the RPC "
1584 "package. Service implementors usually do not need this routine."
1588 #: build/C/man3/rpc.3:905
1590 msgid "B<void svcerr_systemerr(SVCXPRT *>I<xprt>B<);>\n"
1594 #: build/C/man3/rpc.3:911
1596 "Called by a service dispatch routine when it detects a system error not "
1597 "covered by any particular protocol. For example, if a service can no longer "
1598 "allocate storage, it may call this routine."
1602 #: build/C/man3/rpc.3:914
1604 msgid "B<void svcerr_weakauth(SVCXPRT *>I<xprt>B<);>\n"
1608 #: build/C/man3/rpc.3:920
1610 "Called by a service dispatch routine that refuses to perform a remote "
1611 "procedure call due to insufficient authentication parameters. The routine "
1612 "calls B<svcerr_auth(xprt, AUTH_TOOWEAK)>."
1616 #: build/C/man3/rpc.3:924
1619 "B<SVCXPRT *svcfd_create(int >I<fd>B<, unsigned int >I<sendsize>B<,>\n"
1620 "B< unsigned int >I<recvsize>B<);>\n"
1624 #: build/C/man3/rpc.3:934
1626 "Create a service on top of any open descriptor. Typically, this descriptor "
1627 "is a connected socket for a stream protocol such as TCP. I<sendsize> and "
1628 "I<recvsize> indicate sizes for the send and receive buffers. If they are "
1629 "zero, a reasonable default is chosen."
1633 #: build/C/man3/rpc.3:937
1635 msgid "B<SVCXPRT *svcraw_create(void);>\n"
1639 #: build/C/man3/rpc.3:947
1641 "This routine creates a toy RPC service transport, to which it returns a "
1642 "pointer. The transport is really a buffer within the process's address "
1643 "space, so the corresponding RPC client should live in the same address "
1644 "space; see B<clntraw_create>(). This routine allows simulation of RPC and "
1645 "acquisition of RPC overheads (such as round trip times), without any kernel "
1646 "interference. This routine returns NULL if it fails."
1650 #: build/C/man3/rpc.3:951
1653 "B<SVCXPRT *svctcp_create(int >I<sock>B<, unsigned int "
1654 ">I<send_buf_size>B<,>\n"
1655 "B< unsigned int >I<recv_buf_size>B<);>\n"
1659 #: build/C/man3/rpc.3:971
1661 "This routine creates a TCP/IP-based RPC service transport, to which it "
1662 "returns a pointer. The transport is associated with the socket I<sock>, "
1663 "which may be B<RPC_ANYSOCK>, in which case a new socket is created. If the "
1664 "socket is not bound to a local TCP port, then this routine binds it to an "
1665 "arbitrary port. Upon completion, I<xprt-E<gt>xp_sock> is the transport's "
1666 "socket descriptor, and I<xprt-E<gt>xp_port> is the transport's port number. "
1667 "This routine returns NULL if it fails. Since TCP-based RPC uses buffered "
1668 "I/O, users may specify the size of buffers; values of zero choose suitable "
1673 #: build/C/man3/rpc.3:975
1676 "B<SVCXPRT *svcudp_bufcreate(int >I<sock>B<, unsigned int >I<sendsize>B<,>\n"
1677 "B< unsigned int >I<recosize>B<);>\n"
1681 #: build/C/man3/rpc.3:992
1683 "This routine creates a UDP/IP-based RPC service transport, to which it "
1684 "returns a pointer. The transport is associated with the socket I<sock>, "
1685 "which may be B<RPC_ANYSOCK>, in which case a new socket is created. If the "
1686 "socket is not bound to a local UDP port, then this routine binds it to an "
1687 "arbitrary port. Upon completion, I<xprt-E<gt>xp_sock> is the transport's "
1688 "socket descriptor, and I<xprt-E<gt>xp_port> is the transport's port number. "
1689 "This routine returns NULL if it fails."
1693 #: build/C/man3/rpc.3:998
1695 msgid "B<SVCXPRT *svcudp_create(int >I<sock>B<);>\n"
1699 #: build/C/man3/rpc.3:1004
1701 "This call is equivalent to I<svcudp_bufcreate(sock,SZ,SZ)> for some default "
1706 #: build/C/man3/rpc.3:1007
1709 "B<bool_t xdr_accepted_reply(XDR *>I<xdrs>B<, struct accepted_reply "
1714 #: build/C/man3/rpc.3:1012
1716 "Used for encoding RPC reply messages. This routine is useful for users who "
1717 "wish to generate RPC-style messages without using the RPC package."
1721 #: build/C/man3/rpc.3:1015
1724 "B<bool_t xdr_authunix_parms(XDR *>I<xdrs>B<, struct authunix_parms "
1729 #: build/C/man3/rpc.3:1021
1731 "Used for describing UNIX credentials. This routine is useful for users who "
1732 "wish to generate these credentials without using the RPC authentication "
1737 #: build/C/man3/rpc.3:1024
1739 msgid "B<void xdr_callhdr(XDR *>I<xdrs>B<, struct rpc_msg *>I<chdr>B<);>\n"
1743 #: build/C/man3/rpc.3:1029
1745 "Used for describing RPC call header messages. This routine is useful for "
1746 "users who wish to generate RPC-style messages without using the RPC package."
1750 #: build/C/man3/rpc.3:1032
1752 msgid "B<bool_t xdr_callmsg(XDR *>I<xdrs>B<, struct rpc_msg *>I<cmsg>B<);>\n"
1756 #: build/C/man3/rpc.3:1037
1758 "Used for describing RPC call messages. This routine is useful for users who "
1759 "wish to generate RPC-style messages without using the RPC package."
1763 #: build/C/man3/rpc.3:1040
1765 msgid "B<bool_t xdr_opaque_auth(XDR *>I<xdrs>B<, struct opaque_auth *>I<ap>B<);>\n"
1769 #: build/C/man3/rpc.3:1045
1771 "Used for describing RPC authentication information messages. This routine "
1772 "is useful for users who wish to generate RPC-style messages without using "
1777 #: build/C/man3/rpc.3:1048
1779 msgid "B<bool_t xdr_pmap(XDR *>I<xdrs>B<, struct pmap *>I<regs>B<);>\n"
1783 #: build/C/man3/rpc.3:1057
1785 "Used for describing parameters to various B<portmap> procedures, "
1786 "externally. This routine is useful for users who wish to generate these "
1787 "parameters without using the B<pmap> interface."
1791 #: build/C/man3/rpc.3:1060
1793 msgid "B<bool_t xdr_pmaplist(XDR *>I<xdrs>B<, struct pmaplist **>I<rp>B<);>\n"
1797 #: build/C/man3/rpc.3:1067
1799 "Used for describing a list of port mappings, externally. This routine is "
1800 "useful for users who wish to generate these parameters without using the "
1801 "B<pmap> interface."
1805 #: build/C/man3/rpc.3:1070
1808 "B<bool_t xdr_rejected_reply(XDR *>I<xdrs>B<, struct rejected_reply "
1813 #: build/C/man3/rpc.3:1075
1815 "Used for describing RPC reply messages. This routine is useful for users "
1816 "who wish to generate RPC-style messages without using the RPC package."
1820 #: build/C/man3/rpc.3:1078
1822 msgid "B<bool_t xdr_replymsg(XDR *>I<xdrs>B<, struct rpc_msg *>I<rmsg>B<);>\n"
1826 #: build/C/man3/rpc.3:1083
1828 "Used for describing RPC reply messages. This routine is useful for users "
1829 "who wish to generate RPC style messages without using the RPC package."
1833 #: build/C/man3/rpc.3:1086
1835 msgid "B<void xprt_register(SVCXPRT *>I<xprt>B<);>\n"
1839 #: build/C/man3/rpc.3:1093
1841 "After RPC service transport handles are created, they should register "
1842 "themselves with the RPC service package. This routine modifies the global "
1843 "variable I<svc_fds>. Service implementors usually do not need this routine."
1847 #: build/C/man3/rpc.3:1096
1849 msgid "B<void xprt_unregister(SVCXPRT *>I<xprt>B<);>\n"
1853 #: build/C/man3/rpc.3:1103
1855 "Before an RPC service transport handle is destroyed, it should unregister "
1856 "itself with the RPC service package. This routine modifies the global "
1857 "variable I<svc_fds>. Service implementors usually do not need this routine."
1860 #. We don't have an rpc_secure.3 page in the set at the moment -- MTK, 19 Sep 05
1861 #. .BR rpc_secure (3),
1863 #: build/C/man3/rpc.3:1107
1868 #: build/C/man3/rpc.3:1109 build/C/man3/xdr.3:546
1869 msgid "The following manuals:"
1873 #: build/C/man3/rpc.3:1111
1874 msgid "Remote Procedure Calls: Protocol Specification"
1878 #: build/C/man3/rpc.3:1113
1879 msgid "Remote Procedure Call Programming Guide"
1883 #: build/C/man3/rpc.3:1115
1884 msgid "rpcgen Programming Guide"
1888 #: build/C/man3/rpc.3:1121
1890 "I<RPC: Remote Procedure Call Protocol Specification>, RFC\\ 1050, Sun "
1891 "Microsystems, Inc., USC-ISI."
1895 #: build/C/man5/rpc.5:8
1901 #: build/C/man5/rpc.5:11
1902 msgid "rpc - RPC program number data base"
1906 #: build/C/man5/rpc.5:13
1911 #: build/C/man5/rpc.5:19
1913 "The I<rpc> file contains user readable names that can be used in place of "
1914 "RPC program numbers. Each line has the following information:"
1918 #: build/C/man5/rpc.5:21
1919 msgid "name of server for the RPC program"
1923 #: build/C/man5/rpc.5:25
1924 msgid "RPC program number"
1928 #: build/C/man5/rpc.5:29
1933 #: build/C/man5/rpc.5:35
1935 "Items are separated by any number of blanks and/or tab characters. A "
1936 "\\(aq#\\(aq indicates the beginning of a comment; characters from the "
1937 "\\(aq#\\(aq to the end of the line are not interpreted by routines which "
1942 #: build/C/man5/rpc.5:38
1944 "Here is an example of the I</etc/rpc> file from the Sun RPC Source "
1949 #: build/C/man5/rpc.5:73
1953 "# rpc 88/08/01 4.0 RPCSRC; from 1.12 88/02/07 SMI\n"
1955 "portmapper 100000 portmap sunrpc\n"
1956 "rstatd 100001 rstat rstat_svc rup perfmeter\n"
1957 "rusersd 100002 rusers\n"
1958 "nfs 100003 nfsprog\n"
1959 "ypserv 100004 ypprog\n"
1960 "mountd 100005 mount showmount\n"
1962 "walld 100008 rwall shutdown\n"
1963 "yppasswdd 100009 yppasswd\n"
1964 "etherstatd 100010 etherstat\n"
1965 "rquotad 100011 rquotaprog quota rquota\n"
1966 "sprayd 100012 spray\n"
1967 "3270_mapper 100013\n"
1968 "rje_mapper 100014\n"
1969 "selection_svc 100015 selnsvc\n"
1970 "database_svc 100016\n"
1979 "bootparam 100026\n"
1980 "ypupdated 100028 ypupdate\n"
1981 "keyserv 100029 keyserver\n"
1988 #: build/C/man5/rpc.5:80
1989 msgid "RPC program number data base"
1993 #: build/C/man5/rpc.5:82
1994 msgid "B<getrpcent>(3)"
1998 #: build/C/man3/rtime.3:12
2004 #: build/C/man3/rtime.3:12
2010 #: build/C/man3/rtime.3:15
2011 msgid "rtime - get time from a remote machine"
2015 #: build/C/man3/rtime.3:18
2017 msgid "B<#include E<lt>rpc/des_crypt.hE<gt>>\n"
2021 #: build/C/man3/rtime.3:21
2024 "B<int rtime(struct sockaddr_in *>I<addrp>B<, struct rpc_timeval "
2026 "B< struct rpc_timeval *>I<timeout>B<);>\n"
2030 #: build/C/man3/rtime.3:25
2032 "This function uses the Time Server Protocol as described in RFC\\ 868 to "
2033 "obtain the time from a remote machine."
2037 #: build/C/man3/rtime.3:31
2039 "The Time Server Protocol gives the time in seconds since 00:00:00 UTC, 1 Jan "
2040 "1900, and this function subtracts the appropriate constant in order to "
2041 "convert the result to seconds since the Epoch, 1970-01-01 00:00:00 +0000 "
2046 #: build/C/man3/rtime.3:36
2048 "When I<timeout> is non-NULL, the udp/time socket (port 37) is used. "
2049 "Otherwise, the tcp/time socket (port 37) is used."
2053 #: build/C/man3/rtime.3:42
2055 "On success, 0 is returned, and the obtained 32-bit time value is stored in "
2056 "I<timep-E<gt>tv_sec>. In case of error -1 is returned, and I<errno> is set "
2061 #: build/C/man3/rtime.3:51
2063 "All errors for underlying functions (B<sendto>(2), B<poll>(2), "
2064 "B<recvfrom>(2), B<connect>(2), B<read>(2)) can occur. Moreover:"
2068 #: build/C/man3/rtime.3:51
2074 #: build/C/man3/rtime.3:54
2075 msgid "The number of returned bytes is not 4."
2079 #: build/C/man3/rtime.3:54
2081 msgid "B<ETIMEDOUT>"
2085 #: build/C/man3/rtime.3:57
2086 msgid "The waiting time as defined in timeout has expired."
2090 #: build/C/man3/rtime.3:59
2091 msgid "Only IPv4 is supported."
2095 #: build/C/man3/rtime.3:66
2097 "Some I<in.timed> versions support only TCP. Try the example program with "
2098 "I<use_tcp> set to 1."
2102 #: build/C/man3/rtime.3:68
2103 msgid "Libc5 uses the prototype"
2107 #: build/C/man3/rtime.3:70
2108 msgid "int rtime(struct sockaddr_in *, struct timeval *, struct timeval *);"
2112 #: build/C/man3/rtime.3:75
2113 msgid "and requires I<E<lt>sys/time.hE<gt>> instead of I<E<lt>rpc/auth_des.hE<gt>>."
2117 #: build/C/man3/rtime.3:78
2119 "B<rtime>() in glibc 2.2.5 and earlier does not work properly on 64-bit "
2124 #: build/C/man3/rtime.3:78
2130 #: build/C/man3/rtime.3:84
2132 "This example requires that port 37 is up and open. You may check that the "
2133 "time entry within I</etc/inetd.conf> is not commented out."
2137 #: build/C/man3/rtime.3:88
2139 "The program connects to a computer called \"linux\". Using \"localhost\" "
2140 "does not work. The result is the localtime of the computer \"linux\"."
2144 #: build/C/man3/rtime.3:97
2147 "#include E<lt>stdio.hE<gt>\n"
2148 "#include E<lt>stdlib.hE<gt>\n"
2149 "#include E<lt>errno.hE<gt>\n"
2150 "#include E<lt>string.hE<gt>\n"
2151 "#include E<lt>time.hE<gt>\n"
2152 "#include E<lt>rpc/auth_des.hE<gt>\n"
2153 "#include E<lt>netdb.hE<gt>\n"
2157 #: build/C/man3/rtime.3:100
2160 "int use_tcp = 0;\n"
2161 "char *servername = \"linux\";\n"
2165 #: build/C/man3/rtime.3:109
2171 " struct sockaddr_in name;\n"
2172 " struct rpc_timeval time1 = {0,0};\n"
2173 " struct rpc_timeval timeout = {1,0};\n"
2174 " struct hostent *hent;\n"
2179 #: build/C/man3/rtime.3:114
2182 " memset(&name, 0, sizeof(name));\n"
2184 " hent = gethostbyname(servername);\n"
2185 " memcpy(&name.sin_addr, hent-E<gt>h_addr, hent-E<gt>h_length);\n"
2189 #: build/C/man3/rtime.3:122
2192 " ret = rtime(&name, &time1, use_tcp ? NULL : &timeout);\n"
2193 " if (ret E<lt> 0)\n"
2194 " perror(\"rtime error\");\n"
2196 "\ttime_t t = time1.tv_sec;\n"
2197 " printf(\"%s\\en\", ctime(&t));\n"
2202 #: build/C/man3/rtime.3:125
2205 " exit(EXIT_SUCCESS);\n"
2212 #: build/C/man3/rtime.3:131
2213 msgid "B<ntpdate>(1), B<inetd>(8)"
2217 #: build/C/man3/xdr.3:11
2223 #: build/C/man3/xdr.3:11
2229 #: build/C/man3/xdr.3:14
2230 msgid "xdr - library routines for external data representation"
2234 #: build/C/man3/xdr.3:20
2236 "These routines allow C programmers to describe arbitrary data structures in "
2237 "a machine-independent fashion. Data for remote procedure calls are "
2238 "transmitted using these routines."
2242 #: build/C/man3/xdr.3:24
2244 "The prototypes below are declared in I<E<lt>rpc/xdr.hE<gt>> and make use of "
2245 "the following types:"
2249 #: build/C/man3/xdr.3:30
2251 msgid "B<typedef bool_t (*>I<xdrproc_ti>B<) (XDR *, void *,...);>\n"
2255 #: build/C/man3/xdr.3:37
2256 msgid "For the declaration of the I<XDR> type, see I<E<lt>rpc/xdr.hE<gt>>."
2260 #: build/C/man3/xdr.3:42
2263 "B<bool_t xdr_array(XDR *>I<xdrs>B<, char **>I<arrp>B<, unsigned int "
2265 "B< unsigned int >I<maxsize>B<, unsigned int >I<elsize>B<,>\n"
2266 "B< xdrproc_t >I<elproc>B<);>\n"
2270 #: build/C/man3/xdr.3:63
2272 "A filter primitive that translates between variable-length arrays and their "
2273 "corresponding external representations. The argument I<arrp> is the address "
2274 "of the pointer to the array, while I<sizep> is the address of the element "
2275 "count of the array; this element count cannot exceed I<maxsize>. The "
2276 "argument I<elsize> is the I<sizeof> each of the array's elements, and "
2277 "I<elproc> is an XDR filter that translates between the array elements' C "
2278 "form, and their external representation. This routine returns one if it "
2279 "succeeds, zero otherwise."
2283 #: build/C/man3/xdr.3:66
2285 msgid "B<bool_t xdr_bool(XDR *>I<xdrs>B<, bool_t *>I<bp>B<);>\n"
2289 #: build/C/man3/xdr.3:74
2291 "A filter primitive that translates between booleans (C integers) and their "
2292 "external representations. When encoding data, this filter produces values "
2293 "of either one or zero. This routine returns one if it succeeds, zero "
2298 #: build/C/man3/xdr.3:78
2301 "B<bool_t xdr_bytes(XDR *>I<xdrs>B<, char **>I<sp>B<, unsigned int "
2303 "B< unsigned int >I<maxsize>B<);>\n"
2307 #: build/C/man3/xdr.3:91
2309 "A filter primitive that translates between counted byte strings and their "
2310 "external representations. The argument I<sp> is the address of the string "
2311 "pointer. The length of the string is located at address I<sizep>; strings "
2312 "cannot be longer than I<maxsize>. This routine returns one if it succeeds, "
2317 #: build/C/man3/xdr.3:94
2319 msgid "B<bool_t xdr_char(XDR *>I<xdrs>B<, char *>I<cp>B<);>\n"
2323 #: build/C/man3/xdr.3:106
2325 "A filter primitive that translates between C characters and their external "
2326 "representations. This routine returns one if it succeeds, zero otherwise. "
2327 "Note: encoded characters are not packed, and occupy 4 bytes each. For "
2328 "arrays of characters, it is worthwhile to consider B<xdr_bytes>(), "
2329 "B<xdr_opaque>() or B<xdr_string>()."
2333 #: build/C/man3/xdr.3:109
2335 msgid "B<void xdr_destroy(XDR *>I<xdrs>B<);>\n"
2339 #: build/C/man3/xdr.3:120
2341 "A macro that invokes the destroy routine associated with the XDR stream, "
2342 "I<xdrs>. Destruction usually involves freeing private data structures "
2343 "associated with the stream. Using I<xdrs> after invoking B<xdr_destroy>() "
2348 #: build/C/man3/xdr.3:123
2350 msgid "B<bool_t xdr_double(XDR *>I<xdrs>B<, double *>I<dp>B<);>\n"
2354 #: build/C/man3/xdr.3:129
2356 "A filter primitive that translates between C I<double> precision numbers and "
2357 "their external representations. This routine returns one if it succeeds, "
2362 #: build/C/man3/xdr.3:132
2364 msgid "B<bool_t xdr_enum(XDR *>I<xdrs>B<, enum_t *>I<ep>B<);>\n"
2368 #: build/C/man3/xdr.3:138
2370 "A filter primitive that translates between C I<enum>s (actually integers) "
2371 "and their external representations. This routine returns one if it "
2372 "succeeds, zero otherwise."
2376 #: build/C/man3/xdr.3:141
2378 msgid "B<bool_t xdr_float(XDR *>I<xdrs>B<, float *>I<fp>B<);>\n"
2382 #: build/C/man3/xdr.3:147
2384 "A filter primitive that translates between C I<float>s and their external "
2385 "representations. This routine returns one if it succeeds, zero otherwise."
2389 #: build/C/man3/xdr.3:150
2391 msgid "B<void xdr_free(xdrproc_t >I<proc>B<, char *>I<objp>B<);>\n"
2395 #: build/C/man3/xdr.3:160
2397 "Generic freeing routine. The first argument is the XDR routine for the "
2398 "object being freed. The second argument is a pointer to the object itself. "
2399 "Note: the pointer passed to this routine is I<not> freed, but what it points "
2400 "to I<is> freed (recursively)."
2404 #: build/C/man3/xdr.3:163
2406 msgid "B<unsigned int xdr_getpos(XDR *>I<xdrs>B<);>\n"
2410 #: build/C/man3/xdr.3:173
2412 "A macro that invokes the get-position routine associated with the XDR "
2413 "stream, I<xdrs>. The routine returns an unsigned integer, which indicates "
2414 "the position of the XDR byte stream. A desirable feature of XDR streams is "
2415 "that simple arithmetic works with this number, although the XDR stream "
2416 "instances need not guarantee this."
2420 #: build/C/man3/xdr.3:176
2422 msgid "B<long *xdr_inline(XDR *>I<xdrs>B<, int >I<len>B<);>\n"
2426 #: build/C/man3/xdr.3:186
2428 "A macro that invokes the inline routine associated with the XDR stream, "
2429 "I<xdrs>. The routine returns a pointer to a contiguous piece of the "
2430 "stream's buffer; I<len> is the byte length of the desired buffer. Note: "
2431 "pointer is cast to I<long\\ *>."
2435 #: build/C/man3/xdr.3:193
2437 "Warning: B<xdr_inline>() may return NULL (0) if it cannot allocate a "
2438 "contiguous piece of a buffer. Therefore the behavior may vary among stream "
2439 "instances; it exists for the sake of efficiency."
2443 #: build/C/man3/xdr.3:196
2445 msgid "B<bool_t xdr_int(XDR *>I<xdrs>B<, int *>I<ip>B<);>\n"
2449 #: build/C/man3/xdr.3:201
2451 "A filter primitive that translates between C integers and their external "
2452 "representations. This routine returns one if it succeeds, zero otherwise."
2456 #: build/C/man3/xdr.3:204
2458 msgid "B<bool_t xdr_long(XDR *>I<xdrs>B<, long *>I<lp>B<);>\n"
2462 #: build/C/man3/xdr.3:210
2464 "A filter primitive that translates between C I<long> integers and their "
2465 "external representations. This routine returns one if it succeeds, zero "
2470 #: build/C/man3/xdr.3:214
2473 "B<void xdrmem_create(XDR *>I<xdrs>B<, char *>I<addr>B<, unsigned int "
2475 "B< enum xdr_op >I<op>B<);>\n"
2479 #: build/C/man3/xdr.3:231
2481 "This routine initializes the XDR stream object pointed to by I<xdrs>. The "
2482 "stream's data is written to, or read from, a chunk of memory at location "
2483 "I<addr> whose length is no more than I<size> bytes long. The I<op> "
2484 "determines the direction of the XDR stream (either B<XDR_ENCODE>, "
2485 "B<XDR_DECODE>, or B<XDR_FREE>)."
2489 #: build/C/man3/xdr.3:234
2492 "B<bool_t xdr_opaque(XDR *>I<xdrs>B<, char *>I<cp>B<, unsigned int "
2497 #: build/C/man3/xdr.3:244
2499 "A filter primitive that translates between fixed size opaque data and its "
2500 "external representation. The argument I<cp> is the address of the opaque "
2501 "object, and I<cnt> is its size in bytes. This routine returns one if it "
2502 "succeeds, zero otherwise."
2506 #: build/C/man3/xdr.3:248
2509 "B<bool_t xdr_pointer(XDR *>I<xdrs>B<, char **>I<objpp>B<,>\n"
2510 "B< unsigned int >I<objsize>B<, xdrproc_t >I<xdrobj>B<);>\n"
2514 #: build/C/man3/xdr.3:260
2516 "Like B<xdr_reference>() except that it serializes NULL pointers, whereas "
2517 "B<xdr_reference>() does not. Thus, B<xdr_pointer>() can represent "
2518 "recursive data structures, such as binary trees or linked lists."
2522 #: build/C/man3/xdr.3:266
2525 "B<void xdrrec_create(XDR *>I<xdrs>B<, unsigned int >I<sendsize>B<,>\n"
2526 "B< unsigned int >I<recvsize>B<, char *>I<handle>B<,>\n"
2527 "B< int (*>I<readit>B<) (char *, char *, int),>\n"
2528 "B< int (*>I<writeit>B<) (char *, char *, int));>\n"
2532 #: build/C/man3/xdr.3:293
2534 "This routine initializes the XDR stream object pointed to by I<xdrs>. The "
2535 "stream's data is written to a buffer of size I<sendsize>; a value of zero "
2536 "indicates the system should use a suitable default. The stream's data is "
2537 "read from a buffer of size I<recvsize>; it too can be set to a suitable "
2538 "default by passing a zero value. When a stream's output buffer is full, "
2539 "I<writeit> is called. Similarly, when a stream's input buffer is empty, "
2540 "I<readit> is called. The behavior of these two routines is similar to the "
2541 "system calls B<read>(2) and B<write>(2), except that I<handle> is passed to "
2542 "the former routines as the first argument. Note: the XDR stream's I<op> "
2543 "field must be set by the caller."
2547 #: build/C/man3/xdr.3:297
2549 "Warning: this XDR stream implements an intermediate record stream. "
2550 "Therefore there are additional bytes in the stream to provide record "
2551 "boundary information."
2555 #: build/C/man3/xdr.3:300
2557 msgid "B<bool_t xdrrec_endofrecord(XDR *>I<xdrs>B<, int >I<sendnow>B<);>\n"
2561 #: build/C/man3/xdr.3:309
2563 "This routine can be invoked only on streams created by B<xdrrec_create>(). "
2564 "The data in the output buffer is marked as a completed record, and the "
2565 "output buffer is optionally written out if I<sendnow> is nonzero. This "
2566 "routine returns one if it succeeds, zero otherwise."
2570 #: build/C/man3/xdr.3:312
2572 msgid "B<bool_t xdrrec_eof(XDR *>I<xdrs>B<);>\n"
2576 #: build/C/man3/xdr.3:319
2578 "This routine can be invoked only on streams created by B<xdrrec_create>(). "
2579 "After consuming the rest of the current record in the stream, this routine "
2580 "returns one if the stream has no more input, zero otherwise."
2584 #: build/C/man3/xdr.3:322
2586 msgid "B<bool_t xdrrec_skiprecord(XDR *>I<xdrs>B<);>\n"
2590 #: build/C/man3/xdr.3:330
2592 "This routine can be invoked only on streams created by B<xdrrec_create>(). "
2593 "It tells the XDR implementation that the rest of the current record in the "
2594 "stream's input buffer should be discarded. This routine returns one if it "
2595 "succeeds, zero otherwise."
2599 #: build/C/man3/xdr.3:334
2602 "B<bool_t xdr_reference(XDR *>I<xdrs>B<, char **>I<pp>B<, unsigned int "
2604 "B< xdrproc_t >I<proc>B<);>\n"
2608 #: build/C/man3/xdr.3:350
2610 "A primitive that provides pointer chasing within structures. The argument "
2611 "I<pp> is the address of the pointer; I<size> is the I<sizeof> the structure "
2612 "that I<*pp> points to; and I<proc> is an XDR procedure that filters the "
2613 "structure between its C form and its external representation. This routine "
2614 "returns one if it succeeds, zero otherwise."
2618 #: build/C/man3/xdr.3:355
2620 "Warning: this routine does not understand NULL pointers. Use "
2621 "B<xdr_pointer>() instead."
2625 #: build/C/man3/xdr.3:358
2627 msgid "B<xdr_setpos(XDR *>I<xdrs>B<, unsigned int >I<pos>B<);>\n"
2631 #: build/C/man3/xdr.3:369
2633 "A macro that invokes the set position routine associated with the XDR stream "
2634 "I<xdrs>. The argument I<pos> is a position value obtained from "
2635 "B<xdr_getpos>(). This routine returns one if the XDR stream could be "
2636 "repositioned, and zero otherwise."
2640 #: build/C/man3/xdr.3:373
2642 "Warning: it is difficult to reposition some types of XDR streams, so this "
2643 "routine may fail with one type of stream and succeed with another."
2647 #: build/C/man3/xdr.3:376
2649 msgid "B<bool_t xdr_short(XDR *>I<xdrs>B<, short *>I<sp>B<);>\n"
2653 #: build/C/man3/xdr.3:382
2655 "A filter primitive that translates between C I<short> integers and their "
2656 "external representations. This routine returns one if it succeeds, zero "
2661 #: build/C/man3/xdr.3:385
2664 "B<void xdrstdio_create(XDR *>I<xdrs>B<, FILE *>I<file>B<, enum xdr_op "
2669 #: build/C/man3/xdr.3:400
2671 "This routine initializes the XDR stream object pointed to by I<xdrs>. The "
2672 "XDR stream data is written to, or read from, the I<stdio> stream I<file>. "
2673 "The argument I<op> determines the direction of the XDR stream (either "
2674 "B<XDR_ENCODE>, B<XDR_DECODE>, or B<XDR_FREE>)."
2678 #: build/C/man3/xdr.3:407
2680 "Warning: the destroy routine associated with such XDR streams calls "
2681 "B<fflush>(3) on the I<file> stream, but never B<fclose>(3)."
2685 #: build/C/man3/xdr.3:410
2688 "B<bool_t xdr_string(XDR *>I<xdrs>B<, char **>I<sp>B<, unsigned int "
2689 ">I<maxsize>B<);>\n"
2693 #: build/C/man3/xdr.3:420
2695 "A filter primitive that translates between C strings and their corresponding "
2696 "external representations. Strings cannot be longer than I<maxsize>. Note: "
2697 "I<sp> is the address of the string's pointer. This routine returns one if "
2698 "it succeeds, zero otherwise."
2702 #: build/C/man3/xdr.3:423
2704 msgid "B<bool_t xdr_u_char(XDR *>I<xdrs>B<, unsigned char *>I<ucp>B<);>\n"
2708 #: build/C/man3/xdr.3:429
2710 "A filter primitive that translates between I<unsigned> C characters and "
2711 "their external representations. This routine returns one if it succeeds, "
2716 #: build/C/man3/xdr.3:432
2718 msgid "B<bool_t xdr_u_int(XDR *>I<xdrs>B<, unsigned *>I<up>B<);>\n"
2722 #: build/C/man3/xdr.3:438
2724 "A filter primitive that translates between C I<unsigned> integers and their "
2725 "external representations. This routine returns one if it succeeds, zero "
2730 #: build/C/man3/xdr.3:441
2732 msgid "B<bool_t xdr_u_long(XDR *>I<xdrs>B<, unsigned long *>I<ulp>B<);>\n"
2736 #: build/C/man3/xdr.3:447
2738 "A filter primitive that translates between C I<unsigned long> integers and "
2739 "their external representations. This routine returns one if it succeeds, "
2744 #: build/C/man3/xdr.3:450
2746 msgid "B<bool_t xdr_u_short(XDR *>I<xdrs>B<, unsigned short *>I<usp>B<);>\n"
2750 #: build/C/man3/xdr.3:456
2752 "A filter primitive that translates between C I<unsigned short> integers and "
2753 "their external representations. This routine returns one if it succeeds, "
2758 #: build/C/man3/xdr.3:461
2761 "B<bool_t xdr_union(XDR *>I<xdrs>B<, int *>I<dscmp>B<, char *>I<unp>B<,>\n"
2762 "B< struct xdr_discrim *>I<choices>B<,>\n"
2763 "B< xdrproc_t >I<defaultarm>B<); /* may equal NULL */>\n"
2767 #: build/C/man3/xdr.3:495
2769 "A filter primitive that translates between a discriminated C I<union> and "
2770 "its corresponding external representation. It first translates the "
2771 "discriminant of the union located at I<dscmp>. This discriminant is always "
2772 "an I<enum_t>. Next the union located at I<unp> is translated. The argument "
2773 "I<choices> is a pointer to an array of B<xdr_discrim>() structures. Each "
2774 "structure contains an ordered pair of [I<value>,I<proc>]. If the union's "
2775 "discriminant is equal to the associated I<value>, then the I<proc> is called "
2776 "to translate the union. The end of the B<xdr_discrim>() structure array is "
2777 "denoted by a routine of value NULL. If the discriminant is not found in the "
2778 "I<choices> array, then the I<defaultarm> procedure is called (if it is not "
2779 "NULL). Returns one if it succeeds, zero otherwise."
2783 #: build/C/man3/xdr.3:499
2786 "B<bool_t xdr_vector(XDR *>I<xdrs>B<, char *>I<arrp>B<, unsigned int "
2788 "B< unsigned int >I<elsize>B<, xdrproc_t >I<elproc>B<);>\n"
2792 #: build/C/man3/xdr.3:518
2794 "A filter primitive that translates between fixed-length arrays and their "
2795 "corresponding external representations. The argument I<arrp> is the address "
2796 "of the pointer to the array, while I<size> is the element count of the "
2797 "array. The argument I<elsize> is the I<sizeof> each of the array's "
2798 "elements, and I<elproc> is an XDR filter that translates between the array "
2799 "elements' C form, and their external representation. This routine returns "
2800 "one if it succeeds, zero otherwise."
2804 #: build/C/man3/xdr.3:521
2806 msgid "B<bool_t xdr_void(void);>\n"
2810 #: build/C/man3/xdr.3:526
2812 "This routine always returns one. It may be passed to RPC routines that "
2813 "require a function argument, where nothing is to be done."
2817 #: build/C/man3/xdr.3:529
2819 msgid "B<bool_t xdr_wrapstring(XDR *>I<xdrs>B<, char **>I<sp>B<);>\n"
2823 #: build/C/man3/xdr.3:542
2825 "A primitive that calls B<xdr_string(xdrs, sp,MAXUN.UNSIGNED );> where "
2826 "B<MAXUN.UNSIGNED> is the maximum value of an unsigned integer. "
2827 "B<xdr_wrapstring>() is handy because the RPC package passes a maximum of "
2828 "two XDR routines as arguments, and B<xdr_string>(), one of the most "
2829 "frequently used primitives, requires three. Returns one if it succeeds, "
2834 #: build/C/man3/xdr.3:544
2839 #: build/C/man3/xdr.3:548
2840 msgid "eXternal Data Representation Standard: Protocol Specification"
2844 #: build/C/man3/xdr.3:550
2845 msgid "eXternal Data Representation: Sun Technical Notes"
2849 #: build/C/man3/xdr.3:554
2851 "I<XDR: External Data Representation Standard>, RFC\\ 1014, Sun Microsystems, "