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-03-22 04:26+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:35
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:105
247 msgid "B<getrpcent_r>(3), B<rpc>(5), B<rpcinfo>(8), B<ypserv>(8)"
251 #: build/C/man3/getrpcent.3:105 build/C/man3/getrpcent_r.3:135 build/C/man3/getrpcport.3:35 build/C/man3/key_setsecret.3:66 build/C/man3/rpc.3:1115 build/C/man5/rpc.5:77 build/C/man3/rtime.3:125 build/C/man3/xdr.3:551
257 #: build/C/man3/getrpcent.3:112 build/C/man3/getrpcent_r.3:142 build/C/man3/getrpcport.3:42 build/C/man3/key_setsecret.3:73 build/C/man3/rpc.3:1122 build/C/man5/rpc.5:84 build/C/man3/rtime.3:132 build/C/man3/xdr.3:558
259 "This page is part of release 3.37 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:24
271 #: build/C/man3/getrpcent_r.3:24
277 #: build/C/man3/getrpcent_r.3:24 build/C/man3/rtime.3:8
283 #: build/C/man3/getrpcent_r.3:28
284 msgid "getrpcent_r, getrpcbyname_r, getrpcbynumber_r - get RPC entry (reentrant)"
288 #: build/C/man3/getrpcent_r.3:34
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:38
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:42
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:47
315 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
319 #: build/C/man3/getrpcent_r.3:53
320 msgid "B<getrpcent_r>(), B<getrpcbyname_r>(), B<getrpcbynumber_r>():"
324 #: build/C/man3/getrpcent_r.3:55
325 msgid "_BSD_SOURCE || _SVID_SOURCE"
329 #: build/C/man3/getrpcent_r.3:74
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:80
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:97
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:105
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:108
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:116
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:116 build/C/man3/rtime.3:38
388 #: build/C/man3/getrpcent_r.3:117
394 #: build/C/man3/getrpcent_r.3:121
395 msgid "(B<getrpcent_r>()) No more records in database."
399 #: build/C/man3/getrpcent_r.3:121
405 #: build/C/man3/getrpcent_r.3:128
407 "I<buf> is too small. Try again with a larger buffer (and increased "
412 #: build/C/man3/getrpcent_r.3:132
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:135
420 msgid "B<getrpcent>(3), B<rpc>(5)"
424 #: build/C/man3/getrpcport.3:4
430 #: build/C/man3/getrpcport.3:4
436 #: build/C/man3/getrpcport.3:7
437 msgid "getrpcport - get RPC port number"
441 #: build/C/man3/getrpcport.3:11
444 "B<int getrpcport(char *>I<host>B<, int >I<prognum>B<, int >I<versnum>B<, int "
449 #: build/C/man3/getrpcport.3:32
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:5
463 msgid "KEY_SETSECRET"
467 #: build/C/man3/key_setsecret.3:5
473 #: build/C/man3/key_setsecret.3:9
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:11
481 msgid "B<#include E<lt>rpc/rpc.hE<gt>>"
485 #: build/C/man3/key_setsecret.3:14
487 "B<int key_decryptsession(const char *>I<remotename>B<,> B<des_block "
492 #: build/C/man3/key_setsecret.3:17
494 "B<int key_encryptsession(const char *>I<remotename>B<,> B<des_block "
499 #: build/C/man3/key_setsecret.3:19
500 msgid "B<int key_gendes(des_block *>I<deskey>B<);>"
504 #: build/C/man3/key_setsecret.3:21
505 msgid "B<int key_setsecret(const char *>I<key>B<);>"
509 #: build/C/man3/key_setsecret.3:23
510 msgid "B<int key_secretkey_is_set(void);>"
514 #: build/C/man3/key_setsecret.3:28
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:35
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:42
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:46
541 "The function B<key_gendes>() is used to ask the keyserver for a secure "
546 #: build/C/man3/key_setsecret.3:50
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:55
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:57
561 msgid "These functions return 1 on success and 0 on failure."
565 #: build/C/man3/key_setsecret.3:57 build/C/man3/rtime.3:53
571 #: build/C/man3/key_setsecret.3:62
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:64
579 msgid "These routines were part of the Linux/Doors-project, abandoned by now."
583 #: build/C/man3/key_setsecret.3:66
588 #: build/C/man3/rpc.3:7 build/C/man5/rpc.5:4
594 #: build/C/man3/rpc.3:7
600 #: build/C/man3/rpc.3:10
601 msgid "rpc - library routines for remote procedure calls"
605 #: build/C/man3/rpc.3:10 build/C/man3/xdr.3:10
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:22
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:25
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:27
634 msgid "The prototypes below make use of the following types:"
638 #: build/C/man3/rpc.3:31 build/C/man3/xdr.3:24
640 msgid "typedef int I<bool_t>;\n"
644 #: build/C/man3/rpc.3:33 build/C/man3/xdr.3:26
646 msgid "typedef bool_t (*I<xdrproc_t>) (XDR *, void *,...);\n"
650 #: build/C/man3/rpc.3:36
653 "typedef bool_t (*I<resultproc_t>) (caddr_t resp,\n"
654 " struct sockaddr_in *raddr);\n"
658 #: build/C/man3/rpc.3:46
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:49
667 msgid "B<void auth_destroy(AUTH *>I<auth>B<);>\n"
671 #: build/C/man3/rpc.3:58
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:61
682 msgid "B<AUTH *authnone_create(void);>\n"
686 #: build/C/man3/rpc.3:67
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:71
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:87
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:90
714 msgid "B<AUTH *authunix_create_default(void);>\n"
718 #: build/C/man3/rpc.3:95
719 msgid "Calls B<authunix_create>() with the appropriate parameters."
723 #: build/C/man3/rpc.3:101
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:125
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:131
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:138
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:147
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:151
776 msgid "B<eachresult(char *>I<out>B<, struct sockaddr_in *>I<addr>B<);>\n"
780 #: build/C/man3/rpc.3:168
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:172
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:178
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:197
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:200
822 msgid "B<clnt_destroy(CLIENT *>I<clnt>B<);>\n"
826 #: build/C/man3/rpc.3:213
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:217
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:228
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:233
856 "Warning: Using UDP has its shortcomings. Since UDP-based RPC messages can "
857 "only hold 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:236
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:247
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:252
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:260
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:264
894 msgid "B<CLGET_SERVER_ADDR> I<struct sockaddr_in > // get server's address\n"
898 #: build/C/man3/rpc.3:268
899 msgid "The following operations are valid for UDP only:"
903 #: build/C/man3/rpc.3:273
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:279
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:282
921 "B<clnt_freeres(CLIENT * >I<clnt>B<, xdrproc_t >I<outproc>B<, char "
926 #: build/C/man3/rpc.3:293
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:296
938 msgid "B<void clnt_geterr(CLIENT *>I<clnt>B<, struct rpc_err *>I<errp>B<);>\n"
942 #: build/C/man3/rpc.3:301
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:304
951 msgid "B<void clnt_pcreateerror(char *>I<s>B<);>\n"
955 #: build/C/man3/rpc.3:318
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:321
966 msgid "B<void clnt_perrno(enum clnt_stat >I<stat>B<);>\n"
970 #: build/C/man3/rpc.3:328
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:331
979 msgid "B<clnt_perror(CLIENT *>I<clnt>B<, char *>I<s>B<);>\n"
983 #: build/C/man3/rpc.3:341
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:344
993 msgid "B<char *clnt_spcreateerror(char *>I<s>B<);>\n"
997 #: build/C/man3/rpc.3:349
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:351 build/C/man3/rpc.3:391
1005 msgid "Bugs: returns pointer to static data that is overwritten on each call."
1009 #: build/C/man3/rpc.3:354
1011 msgid "B<char *clnt_sperrno(enum clnt_stat >I<stat>B<);>\n"
1015 #: build/C/man3/rpc.3:361
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:379
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:382
1038 msgid "B<char *clnt_sperror(CLIENT *>I<rpch>B<, char *>I<s>B<);>\n"
1042 #: build/C/man3/rpc.3:389
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:395
1052 "B<CLIENT *clntraw_create(unsigned long >I<prognum>B<, unsigned long "
1053 ">I<versnum>B<);>\n"
1057 #: build/C/man3/rpc.3:408
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:414
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:444
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:449
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:475
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:479
1123 "Warning: since UDP-based RPC messages can only hold 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:485
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:511
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:514 build/C/man3/rpc.3:991
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:517
1163 msgid "B<void get_myaddress(struct sockaddr_in *>I<addr>B<);>\n"
1167 #: build/C/man3/rpc.3:525
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:528
1177 msgid "B<struct pmaplist *pmap_getmaps(struct sockaddr_in *>I<addr>B<);>\n"
1181 #: build/C/man3/rpc.3:539
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:544
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:568
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:576
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:596
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:600
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:620
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:623
1261 "B<bool_t pmap_unset(unsigned long >I<prognum>B<, unsigned long "
1262 ">I<versnum>B<);>\n"
1266 #: build/C/man3/rpc.3:635
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:640
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:660
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:665
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:668
1307 msgid "B<struct rpc_createerr >I<rpc_createerr>B<;>\n"
1311 #: build/C/man3/rpc.3:675
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:678
1321 msgid "B<void svc_destroy(SVCXPRT *>I<xprt>B<);>\n"
1325 #: build/C/man3/rpc.3:689
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:692
1336 msgid "B<fd_set >I<svc_fdset>B<;>\n"
1340 #: build/C/man3/rpc.3:706
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 only of interest 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:709
1353 msgid "B<int >I<svc_fds>B<;>\n"
1357 #: build/C/man3/rpc.3:716
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:719
1367 "B<svc_freeargs(SVCXPRT *>I<xprt>B<, xdrproc_t >I<inproc>B<, char "
1372 #: build/C/man3/rpc.3:726
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:729
1383 "B<svc_getargs(SVCXPRT *>I<xprt>B<, xdrproc_t >I<inproc>B<, char "
1388 #: build/C/man3/rpc.3:740
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:743
1400 msgid "B<struct sockaddr_in *svc_getcaller(SVCXPRT *>I<xprt>B<);>\n"
1404 #: build/C/man3/rpc.3:748
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:751
1413 msgid "B<void svc_getreqset(fd_set *>I<rdfds>B<);>\n"
1417 #: build/C/man3/rpc.3:765
1419 "This routine is only of interest 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:768
1430 msgid "B<void svc_getreq(int >I<rdfds>B<);>\n"
1434 #: build/C/man3/rpc.3:775
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:781
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:811
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:815
1465 msgid "dispatch(struct svc_req *request, SVCXPRT *xprt);\n"
1469 #: build/C/man3/rpc.3:821
1471 "The B<svc_register>() routine returns one if it succeeds, and zero "
1476 #: build/C/man3/rpc.3:824
1478 msgid "B<void svc_run(void);>\n"
1482 #: build/C/man3/rpc.3:834
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:838
1493 "B<bool_t svc_sendreply(SVCXPRT *>I<xprt>B<, xdrproc_t >I<outproc>B<, char "
1498 #: build/C/man3/rpc.3:850
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:853
1511 "B<void svc_unregister(unsigned long >I<prognum>B<, unsigned long "
1512 ">I<versnum>B<);>\n"
1516 #: build/C/man3/rpc.3:860
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:863
1525 msgid "B<void svcerr_auth(SVCXPRT *>I<xprt>B<, enum auth_stat >I<why>B<);>\n"
1529 #: build/C/man3/rpc.3:867
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:870
1538 msgid "B<void svcerr_decode(SVCXPRT *>I<xprt>B<);>\n"
1542 #: build/C/man3/rpc.3:876
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:879
1551 msgid "B<void svcerr_noproc(SVCXPRT *>I<xprt>B<);>\n"
1555 #: build/C/man3/rpc.3:883
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:886
1564 msgid "B<void svcerr_noprog(SVCXPRT *>I<xprt>B<);>\n"
1568 #: build/C/man3/rpc.3:890
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:893
1577 msgid "B<void svcerr_progvers(SVCXPRT *>I<xprt>B<);>\n"
1581 #: build/C/man3/rpc.3:898
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:901
1590 msgid "B<void svcerr_systemerr(SVCXPRT *>I<xprt>B<);>\n"
1594 #: build/C/man3/rpc.3:907
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:910
1604 msgid "B<void svcerr_weakauth(SVCXPRT *>I<xprt>B<);>\n"
1608 #: build/C/man3/rpc.3:916
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:920
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:930
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:933
1635 msgid "B<SVCXPRT *svcraw_create(void);>\n"
1639 #: build/C/man3/rpc.3:943
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:947
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:967
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:971
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:988
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:994
1695 msgid "B<SVCXPRT *svcudp_create(int >I<sock>B<);>\n"
1699 #: build/C/man3/rpc.3:999
1701 "This call is equivalent to I<svcudp_bufcreate(sock,SZ,SZ)> for some default "
1706 #: build/C/man3/rpc.3:1002
1709 "B<bool_t xdr_accepted_reply(XDR *>I<xdrs>B<, struct accepted_reply "
1714 #: build/C/man3/rpc.3:1007
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:1010
1724 "B<bool_t xdr_authunix_parms(XDR *>I<xdrs>B<, struct authunix_parms "
1729 #: build/C/man3/rpc.3:1016
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:1019
1739 msgid "B<void xdr_callhdr(XDR *>I<xdrs>B<, struct rpc_msg *>I<chdr>B<);>\n"
1743 #: build/C/man3/rpc.3:1024
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:1027
1752 msgid "B<bool_t xdr_callmsg(XDR *>I<xdrs>B<, struct rpc_msg *>I<cmsg>B<);>\n"
1756 #: build/C/man3/rpc.3:1032
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:1035
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:1040
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:1043
1779 msgid "B<bool_t xdr_pmap(XDR *>I<xdrs>B<, struct pmap *>I<regs>B<);>\n"
1783 #: build/C/man3/rpc.3:1052
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:1055
1793 msgid "B<bool_t xdr_pmaplist(XDR *>I<xdrs>B<, struct pmaplist **>I<rp>B<);>\n"
1797 #: build/C/man3/rpc.3:1062
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:1065
1808 "B<bool_t xdr_rejected_reply(XDR *>I<xdrs>B<, struct rejected_reply "
1813 #: build/C/man3/rpc.3:1070
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:1073
1822 msgid "B<bool_t xdr_replymsg(XDR *>I<xdrs>B<, struct rpc_msg *>I<rmsg>B<);>\n"
1826 #: build/C/man3/rpc.3:1078
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:1081
1835 msgid "B<void xprt_register(SVCXPRT *>I<xprt>B<);>\n"
1839 #: build/C/man3/rpc.3:1088
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:1091
1849 msgid "B<void xprt_unregister(SVCXPRT *>I<xprt>B<);>\n"
1853 #: build/C/man3/rpc.3:1098
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:1102
1868 #: build/C/man3/rpc.3:1104 build/C/man3/xdr.3:542
1869 msgid "The following manuals:"
1873 #: build/C/man3/rpc.3:1106
1874 msgid "Remote Procedure Calls: Protocol Specification"
1878 #: build/C/man3/rpc.3:1108
1879 msgid "Remote Procedure Call Programming Guide"
1883 #: build/C/man3/rpc.3:1110
1884 msgid "rpcgen Programming Guide"
1888 #: build/C/man3/rpc.3:1115
1890 "I<RPC: Remote Procedure Call Protocol Specification>, RFC\\ 1050, Sun "
1891 "Microsystems, Inc., USC-ISI."
1895 #: build/C/man5/rpc.5:4
1901 #: build/C/man5/rpc.5:7
1902 msgid "rpc - RPC program number data base"
1906 #: build/C/man5/rpc.5:9
1911 #: build/C/man5/rpc.5:15
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:17
1919 msgid "name of server for the RPC program"
1923 #: build/C/man5/rpc.5:21
1924 msgid "RPC program number"
1928 #: build/C/man5/rpc.5:25
1933 #: build/C/man5/rpc.5:31
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:34
1944 "Here is an example of the I</etc/rpc> file from the Sun RPC Source "
1949 #: build/C/man5/rpc.5:35
1951 msgid "1.5i +0.5i +1.0i +1.0i"
1955 #: build/C/man5/rpc.5:69
1959 "# rpc 88/08/01 4.0 RPCSRC; from 1.12 88/02/07 SMI\n"
1961 "portmapper\t\t100000\tportmap sunrpc\n"
1962 "rstatd\t\t100001\trstat rstat_svc rup perfmeter\n"
1963 "rusersd\t\t100002\trusers\n"
1964 "nfs\t\t100003\tnfsprog\n"
1965 "ypserv\t\t100004\typprog\n"
1966 "mountd\t\t100005\tmount showmount\n"
1967 "ypbind\t\t100007\n"
1968 "walld\t\t100008\trwall shutdown\n"
1969 "yppasswdd\t\t100009\typpasswd\n"
1970 "etherstatd\t\t100010\tetherstat\n"
1971 "rquotad\t\t100011\trquotaprog quota rquota\n"
1972 "sprayd\t\t100012\tspray\n"
1973 "3270_mapper\t\t100013\n"
1974 "rje_mapper\t\t100014\n"
1975 "selection_svc\t\t100015\tselnsvc\n"
1976 "database_svc\t\t100016\n"
1977 "rexd\t\t100017\trex\n"
1980 "llockmgr\t\t100020\n"
1981 "nlockmgr\t\t100021\n"
1982 "x25.inr\t\t100022\n"
1983 "statmon\t\t100023\n"
1984 "status\t\t100024\n"
1985 "bootparam\t\t100026\n"
1986 "ypupdated\t\t100028\typupdate\n"
1987 "keyserv\t\t100029\tkeyserver\n"
1990 "nsemntd\t\t100039\n"
1994 #: build/C/man5/rpc.5:75
1995 msgid "RPC program number data base"
1999 #: build/C/man5/rpc.5:77
2000 msgid "B<getrpcent>(3)"
2004 #: build/C/man3/rtime.3:8
2010 #: build/C/man3/rtime.3:8
2016 #: build/C/man3/rtime.3:11
2017 msgid "rtime - get time from a remote machine"
2021 #: build/C/man3/rtime.3:14
2023 msgid "B<#include E<lt>rpc/des_crypt.hE<gt>>\n"
2027 #: build/C/man3/rtime.3:17
2030 "B<int rtime(struct sockaddr_in *>I<addrp>B<, struct rpc_timeval "
2032 "B< struct rpc_timeval *>I<timeout>B<);>\n"
2036 #: build/C/man3/rtime.3:21
2038 "This function uses the Time Server Protocol as described in RFC\\ 868 to "
2039 "obtain the time from a remote machine."
2043 #: build/C/man3/rtime.3:27
2045 "The Time Server Protocol gives the time in seconds since 00:00:00 UTC, 1 Jan "
2046 "1900, and this function subtracts the appropriate constant in order to "
2047 "convert the result to seconds since the Epoch, 1970-01-01 00:00:00 +0000 "
2052 #: build/C/man3/rtime.3:32
2054 "When I<timeout> is non-NULL, the udp/time socket (port 37) is used. "
2055 "Otherwise, the tcp/time socket (port 37) is used."
2059 #: build/C/man3/rtime.3:38
2061 "On success, 0 is returned, and the obtained 32-bit time value is stored in "
2062 "I<timep-E<gt>tv_sec>. In case of error -1 is returned, and I<errno> is set "
2067 #: build/C/man3/rtime.3:47
2069 "All errors for underlying functions (B<sendto>(2), B<poll>(2), "
2070 "B<recvfrom>(2), B<connect>(2), B<read>(2)) can occur. Moreover:"
2074 #: build/C/man3/rtime.3:47
2080 #: build/C/man3/rtime.3:50
2081 msgid "The number of returned bytes is not 4."
2085 #: build/C/man3/rtime.3:50
2087 msgid "B<ETIMEDOUT>"
2091 #: build/C/man3/rtime.3:53
2092 msgid "The waiting time as defined in timeout has expired."
2096 #: build/C/man3/rtime.3:55
2097 msgid "Only IPv4 is supported."
2101 #: build/C/man3/rtime.3:62
2103 "Some I<in.timed> versions only support TCP. Try the example program with "
2104 "I<use_tcp> set to 1."
2108 #: build/C/man3/rtime.3:64
2109 msgid "Libc5 uses the prototype"
2113 #: build/C/man3/rtime.3:66
2114 msgid "int rtime(struct sockaddr_in *, struct timeval *, struct timeval *);"
2118 #: build/C/man3/rtime.3:71
2119 msgid "and requires I<E<lt>sys/time.hE<gt>> instead of I<E<lt>rpc/auth_des.hE<gt>>."
2123 #: build/C/man3/rtime.3:74
2125 "B<rtime>() in glibc 2.2.5 and earlier does not work properly on 64-bit "
2130 #: build/C/man3/rtime.3:74
2136 #: build/C/man3/rtime.3:80
2138 "This example requires that port 37 is up and open. You may check that the "
2139 "time entry within I</etc/inetd.conf> is not commented out."
2143 #: build/C/man3/rtime.3:84
2145 "The program connects to a computer called \"linux\". Using \"localhost\" "
2146 "does not work. The result is the localtime of the computer \"linux\"."
2150 #: build/C/man3/rtime.3:93
2153 "#include E<lt>stdio.hE<gt>\n"
2154 "#include E<lt>stdlib.hE<gt>\n"
2155 "#include E<lt>errno.hE<gt>\n"
2156 "#include E<lt>string.hE<gt>\n"
2157 "#include E<lt>time.hE<gt>\n"
2158 "#include E<lt>rpc/auth_des.hE<gt>\n"
2159 "#include E<lt>netdb.hE<gt>\n"
2163 #: build/C/man3/rtime.3:96
2166 "int use_tcp = 0;\n"
2167 "char *servername = \"linux\";\n"
2171 #: build/C/man3/rtime.3:105
2177 " struct sockaddr_in name;\n"
2178 " struct rpc_timeval time1 = {0,0};\n"
2179 " struct rpc_timeval timeout = {1,0};\n"
2180 " struct hostent *hent;\n"
2185 #: build/C/man3/rtime.3:110
2188 " memset((char *) &name, 0, sizeof(name));\n"
2190 " hent = gethostbyname(servername);\n"
2191 " memcpy((char *) &name.sin_addr, hent-E<gt>h_addr, hent-E<gt>h_length);\n"
2195 #: build/C/man3/rtime.3:116
2198 " ret = rtime(&name, &time1, use_tcp ? NULL : &timeout);\n"
2199 " if (ret E<lt> 0)\n"
2200 " perror(\"rtime error\");\n"
2202 " printf(\"%s\\en\", ctime((time_t *) &time1.tv_sec));\n"
2206 #: build/C/man3/rtime.3:119
2209 " exit(EXIT_SUCCESS);\n"
2216 #: build/C/man3/rtime.3:125
2217 msgid "B<ntpdate>(1), B<inetd>(8)"
2221 #: build/C/man3/xdr.3:7
2227 #: build/C/man3/xdr.3:7
2233 #: build/C/man3/xdr.3:10
2234 msgid "xdr - library routines for external data representation"
2238 #: build/C/man3/xdr.3:16
2240 "These routines allow C programmers to describe arbitrary data structures in "
2241 "a machine-independent fashion. Data for remote procedure calls are "
2242 "transmitted using these routines."
2246 #: build/C/man3/xdr.3:20
2248 "The prototypes below are declared in I<E<lt>rpc/xdr.hE<gt>> and make use of "
2249 "the following types:"
2253 #: build/C/man3/xdr.3:33
2254 msgid "For the declaration of the I<XDR> type, see I<E<lt>rpc/xdr.hE<gt>>."
2258 #: build/C/man3/xdr.3:38
2261 "B<bool_t xdr_array(XDR *>I<xdrs>B<, char **>I<arrp>B<, unsigned int "
2263 "B< unsigned int >I<maxsize>B<, unsigned int >I<elsize>B<,>\n"
2264 "B< xdrproc_t >I<elproc>B<);>\n"
2268 #: build/C/man3/xdr.3:59
2270 "A filter primitive that translates between variable-length arrays and their "
2271 "corresponding external representations. The argument I<arrp> is the address "
2272 "of the pointer to the array, while I<sizep> is the address of the element "
2273 "count of the array; this element count cannot exceed I<maxsize>. The "
2274 "argument I<elsize> is the I<sizeof> each of the array's elements, and "
2275 "I<elproc> is an XDR filter that translates between the array elements' C "
2276 "form, and their external representation. This routine returns one if it "
2277 "succeeds, zero otherwise."
2281 #: build/C/man3/xdr.3:62
2283 msgid "B<bool_t xdr_bool(XDR *>I<xdrs>B<, bool_t *>I<bp>B<);>\n"
2287 #: build/C/man3/xdr.3:70
2289 "A filter primitive that translates between booleans (C integers) and their "
2290 "external representations. When encoding data, this filter produces values "
2291 "of either one or zero. This routine returns one if it succeeds, zero "
2296 #: build/C/man3/xdr.3:74
2299 "B<bool_t xdr_bytes(XDR *>I<xdrs>B<, char **>I<sp>B<, unsigned int "
2301 "B< unsigned int >I<maxsize>B<);>\n"
2305 #: build/C/man3/xdr.3:87
2307 "A filter primitive that translates between counted byte strings and their "
2308 "external representations. The argument I<sp> is the address of the string "
2309 "pointer. The length of the string is located at address I<sizep>; strings "
2310 "cannot be longer than I<maxsize>. This routine returns one if it succeeds, "
2315 #: build/C/man3/xdr.3:90
2317 msgid "B<bool_t xdr_char(XDR *>I<xdrs>B<, char *>I<cp>B<);>\n"
2321 #: build/C/man3/xdr.3:102
2323 "A filter primitive that translates between C characters and their external "
2324 "representations. This routine returns one if it succeeds, zero otherwise. "
2325 "Note: encoded characters are not packed, and occupy 4 bytes each. For "
2326 "arrays of characters, it is worthwhile to consider B<xdr_bytes>(), "
2327 "B<xdr_opaque>() or B<xdr_string>()."
2331 #: build/C/man3/xdr.3:105
2333 msgid "B<void xdr_destroy(XDR *>I<xdrs>B<);>\n"
2337 #: build/C/man3/xdr.3:116
2339 "A macro that invokes the destroy routine associated with the XDR stream, "
2340 "I<xdrs>. Destruction usually involves freeing private data structures "
2341 "associated with the stream. Using I<xdrs> after invoking B<xdr_destroy>() "
2346 #: build/C/man3/xdr.3:119
2348 msgid "B<bool_t xdr_double(XDR *>I<xdrs>B<, double *>I<dp>B<);>\n"
2352 #: build/C/man3/xdr.3:125
2354 "A filter primitive that translates between C I<double> precision numbers and "
2355 "their external representations. This routine returns one if it succeeds, "
2360 #: build/C/man3/xdr.3:128
2362 msgid "B<bool_t xdr_enum(XDR *>I<xdrs>B<, enum_t *>I<ep>B<);>\n"
2366 #: build/C/man3/xdr.3:134
2368 "A filter primitive that translates between C I<enum>s (actually integers) "
2369 "and their external representations. This routine returns one if it "
2370 "succeeds, zero otherwise."
2374 #: build/C/man3/xdr.3:137
2376 msgid "B<bool_t xdr_float(XDR *>I<xdrs>B<, float *>I<fp>B<);>\n"
2380 #: build/C/man3/xdr.3:143
2382 "A filter primitive that translates between C I<float>s and their external "
2383 "representations. This routine returns one if it succeeds, zero otherwise."
2387 #: build/C/man3/xdr.3:146
2389 msgid "B<void xdr_free(xdrproc_t >I<proc>B<, char *>I<objp>B<);>\n"
2393 #: build/C/man3/xdr.3:156
2395 "Generic freeing routine. The first argument is the XDR routine for the "
2396 "object being freed. The second argument is a pointer to the object itself. "
2397 "Note: the pointer passed to this routine is I<not> freed, but what it points "
2398 "to I<is> freed (recursively)."
2402 #: build/C/man3/xdr.3:159
2404 msgid "B<unsigned int xdr_getpos(XDR *>I<xdrs>B<);>\n"
2408 #: build/C/man3/xdr.3:169
2410 "A macro that invokes the get-position routine associated with the XDR "
2411 "stream, I<xdrs>. The routine returns an unsigned integer, which indicates "
2412 "the position of the XDR byte stream. A desirable feature of XDR streams is "
2413 "that simple arithmetic works with this number, although the XDR stream "
2414 "instances need not guarantee this."
2418 #: build/C/man3/xdr.3:172
2420 msgid "B<long *xdr_inline(XDR *>I<xdrs>B<, int >I<len>B<);>\n"
2424 #: build/C/man3/xdr.3:182
2426 "A macro that invokes the inline routine associated with the XDR stream, "
2427 "I<xdrs>. The routine returns a pointer to a contiguous piece of the "
2428 "stream's buffer; I<len> is the byte length of the desired buffer. Note: "
2429 "pointer is cast to I<long *>."
2433 #: build/C/man3/xdr.3:189
2435 "Warning: B<xdr_inline>() may return NULL (0) if it cannot allocate a "
2436 "contiguous piece of a buffer. Therefore the behavior may vary among stream "
2437 "instances; it exists for the sake of efficiency."
2441 #: build/C/man3/xdr.3:192
2443 msgid "B<bool_t xdr_int(XDR *>I<xdrs>B<, int *>I<ip>B<);>\n"
2447 #: build/C/man3/xdr.3:197
2449 "A filter primitive that translates between C integers and their external "
2450 "representations. This routine returns one if it succeeds, zero otherwise."
2454 #: build/C/man3/xdr.3:200
2456 msgid "B<bool_t xdr_long(XDR *>I<xdrs>B<, long *>I<lp>B<);>\n"
2460 #: build/C/man3/xdr.3:206
2462 "A filter primitive that translates between C I<long> integers and their "
2463 "external representations. This routine returns one if it succeeds, zero "
2468 #: build/C/man3/xdr.3:210
2471 "B<void xdrmem_create(XDR *>I<xdrs>B<, char *>I<addr>B<, unsigned int "
2473 "B< enum xdr_op >I<op>B<);>\n"
2477 #: build/C/man3/xdr.3:227
2479 "This routine initializes the XDR stream object pointed to by I<xdrs>. The "
2480 "stream's data is written to, or read from, a chunk of memory at location "
2481 "I<addr> whose length is no more than I<size> bytes long. The I<op> "
2482 "determines the direction of the XDR stream (either B<XDR_ENCODE>, "
2483 "B<XDR_DECODE>, or B<XDR_FREE>)."
2487 #: build/C/man3/xdr.3:230
2490 "B<bool_t xdr_opaque(XDR *>I<xdrs>B<, char *>I<cp>B<, unsigned int "
2495 #: build/C/man3/xdr.3:240
2497 "A filter primitive that translates between fixed size opaque data and its "
2498 "external representation. The argument I<cp> is the address of the opaque "
2499 "object, and I<cnt> is its size in bytes. This routine returns one if it "
2500 "succeeds, zero otherwise."
2504 #: build/C/man3/xdr.3:244
2507 "B<bool_t xdr_pointer(XDR *>I<xdrs>B<, char **>I<objpp>B<,>\n"
2508 "B< unsigned int >I<objsize>B<, xdrproc_t >I<xdrobj>B<);>\n"
2512 #: build/C/man3/xdr.3:256
2514 "Like B<xdr_reference>() except that it serializes NULL pointers, whereas "
2515 "B<xdr_reference>() does not. Thus, B<xdr_pointer>() can represent "
2516 "recursive data structures, such as binary trees or linked lists."
2520 #: build/C/man3/xdr.3:262
2523 "B<void xdrrec_create(XDR *>I<xdrs>B<, unsigned int >I<sendsize>B<,>\n"
2524 "B< unsigned int >I<recvsize>B<, char *>I<handle>B<,>\n"
2525 "B< int (*>I<readit>B<) (char *, char *, int),>\n"
2526 "B< int (*>I<writeit>B<) (char *, char *, int));>\n"
2530 #: build/C/man3/xdr.3:289
2532 "This routine initializes the XDR stream object pointed to by I<xdrs>. The "
2533 "stream's data is written to a buffer of size I<sendsize>; a value of zero "
2534 "indicates the system should use a suitable default. The stream's data is "
2535 "read from a buffer of size I<recvsize>; it too can be set to a suitable "
2536 "default by passing a zero value. When a stream's output buffer is full, "
2537 "I<writeit> is called. Similarly, when a stream's input buffer is empty, "
2538 "I<readit> is called. The behavior of these two routines is similar to the "
2539 "system calls B<read>(2) and B<write>(2), except that I<handle> is passed to "
2540 "the former routines as the first argument. Note: the XDR stream's I<op> "
2541 "field must be set by the caller."
2545 #: build/C/man3/xdr.3:293
2547 "Warning: this XDR stream implements an intermediate record stream. "
2548 "Therefore there are additional bytes in the stream to provide record "
2549 "boundary information."
2553 #: build/C/man3/xdr.3:296
2555 msgid "B<bool_t xdrrec_endofrecord(XDR *>I<xdrs>B<, int >I<sendnow>B<);>\n"
2559 #: build/C/man3/xdr.3:305
2561 "This routine can be invoked only on streams created by B<xdrrec_create>(). "
2562 "The data in the output buffer is marked as a completed record, and the "
2563 "output buffer is optionally written out if I<sendnow> is nonzero. This "
2564 "routine returns one if it succeeds, zero otherwise."
2568 #: build/C/man3/xdr.3:308
2570 msgid "B<bool_t xdrrec_eof(XDR *>I<xdrs>B<);>\n"
2574 #: build/C/man3/xdr.3:315
2576 "This routine can be invoked only on streams created by B<xdrrec_create>(). "
2577 "After consuming the rest of the current record in the stream, this routine "
2578 "returns one if the stream has no more input, zero otherwise."
2582 #: build/C/man3/xdr.3:318
2584 msgid "B<bool_t xdrrec_skiprecord(XDR *>I<xdrs>B<);>\n"
2588 #: build/C/man3/xdr.3:326
2590 "This routine can be invoked only on streams created by B<xdrrec_create>(). "
2591 "It tells the XDR implementation that the rest of the current record in the "
2592 "stream's input buffer should be discarded. This routine returns one if it "
2593 "succeeds, zero otherwise."
2597 #: build/C/man3/xdr.3:330
2600 "B<bool_t xdr_reference(XDR *>I<xdrs>B<, char **>I<pp>B<, unsigned int "
2602 "B< xdrproc_t >I<proc>B<);>\n"
2606 #: build/C/man3/xdr.3:346
2608 "A primitive that provides pointer chasing within structures. The argument "
2609 "I<pp> is the address of the pointer; I<size> is the I<sizeof> the structure "
2610 "that I<*pp> points to; and I<proc> is an XDR procedure that filters the "
2611 "structure between its C form and its external representation. This routine "
2612 "returns one if it succeeds, zero otherwise."
2616 #: build/C/man3/xdr.3:351
2618 "Warning: this routine does not understand NULL pointers. Use "
2619 "B<xdr_pointer>() instead."
2623 #: build/C/man3/xdr.3:354
2625 msgid "B<xdr_setpos(XDR *>I<xdrs>B<, unsigned int >I<pos>B<);>\n"
2629 #: build/C/man3/xdr.3:365
2631 "A macro that invokes the set position routine associated with the XDR stream "
2632 "I<xdrs>. The argument I<pos> is a position value obtained from "
2633 "B<xdr_getpos>(). This routine returns one if the XDR stream could be "
2634 "repositioned, and zero otherwise."
2638 #: build/C/man3/xdr.3:369
2640 "Warning: it is difficult to reposition some types of XDR streams, so this "
2641 "routine may fail with one type of stream and succeed with another."
2645 #: build/C/man3/xdr.3:372
2647 msgid "B<bool_t xdr_short(XDR *>I<xdrs>B<, short *>I<sp>B<);>\n"
2651 #: build/C/man3/xdr.3:378
2653 "A filter primitive that translates between C I<short> integers and their "
2654 "external representations. This routine returns one if it succeeds, zero "
2659 #: build/C/man3/xdr.3:381
2662 "B<void xdrstdio_create(XDR *>I<xdrs>B<, FILE *>I<file>B<, enum xdr_op "
2667 #: build/C/man3/xdr.3:396
2669 "This routine initializes the XDR stream object pointed to by I<xdrs>. The "
2670 "XDR stream data is written to, or read from, the I<stdio> stream I<file>. "
2671 "The argument I<op> determines the direction of the XDR stream (either "
2672 "B<XDR_ENCODE>, B<XDR_DECODE>, or B<XDR_FREE>)."
2676 #: build/C/man3/xdr.3:403
2678 "Warning: the destroy routine associated with such XDR streams calls "
2679 "B<fflush>(3) on the I<file> stream, but never B<fclose>(3)."
2683 #: build/C/man3/xdr.3:406
2686 "B<bool_t xdr_string(XDR *>I<xdrs>B<, char **>I<sp>B<, unsigned int "
2687 ">I<maxsize>B<);>\n"
2691 #: build/C/man3/xdr.3:416
2693 "A filter primitive that translates between C strings and their corresponding "
2694 "external representations. Strings cannot be longer than I<maxsize>. Note: "
2695 "I<sp> is the address of the string's pointer. This routine returns one if "
2696 "it succeeds, zero otherwise."
2700 #: build/C/man3/xdr.3:419
2702 msgid "B<bool_t xdr_u_char(XDR *>I<xdrs>B<, unsigned char *>I<ucp>B<);>\n"
2706 #: build/C/man3/xdr.3:425
2708 "A filter primitive that translates between I<unsigned> C characters and "
2709 "their external representations. This routine returns one if it succeeds, "
2714 #: build/C/man3/xdr.3:428
2716 msgid "B<bool_t xdr_u_int(XDR *>I<xdrs>B<, unsigned *>I<up>B<);>\n"
2720 #: build/C/man3/xdr.3:434
2722 "A filter primitive that translates between C I<unsigned> integers and their "
2723 "external representations. This routine returns one if it succeeds, zero "
2728 #: build/C/man3/xdr.3:437
2730 msgid "B<bool_t xdr_u_long(XDR *>I<xdrs>B<, unsigned long *>I<ulp>B<);>\n"
2734 #: build/C/man3/xdr.3:443
2736 "A filter primitive that translates between C I<unsigned long> integers and "
2737 "their external representations. This routine returns one if it succeeds, "
2742 #: build/C/man3/xdr.3:446
2744 msgid "B<bool_t xdr_u_short(XDR *>I<xdrs>B<, unsigned short *>I<usp>B<);>\n"
2748 #: build/C/man3/xdr.3:452
2750 "A filter primitive that translates between C I<unsigned short> integers and "
2751 "their external representations. This routine returns one if it succeeds, "
2756 #: build/C/man3/xdr.3:457
2759 "B<bool_t xdr_union(XDR *>I<xdrs>B<, int *>I<dscmp>B<, char *>I<unp>B<,>\n"
2760 "B< struct xdr_discrim *>I<choices>B<,>\n"
2761 "B< xdrproc_t >I<defaultarm>B<); /* may equal NULL */>\n"
2765 #: build/C/man3/xdr.3:491
2767 "A filter primitive that translates between a discriminated C I<union> and "
2768 "its corresponding external representation. It first translates the "
2769 "discriminant of the union located at I<dscmp>. This discriminant is always "
2770 "an I<enum_t>. Next the union located at I<unp> is translated. The argument "
2771 "I<choices> is a pointer to an array of B<xdr_discrim>() structures. Each "
2772 "structure contains an ordered pair of [I<value>,I<proc>]. If the union's "
2773 "discriminant is equal to the associated I<value>, then the I<proc> is called "
2774 "to translate the union. The end of the B<xdr_discrim>() structure array is "
2775 "denoted by a routine of value NULL. If the discriminant is not found in the "
2776 "I<choices> array, then the I<defaultarm> procedure is called (if it is not "
2777 "NULL). Returns one if it succeeds, zero otherwise."
2781 #: build/C/man3/xdr.3:495
2784 "B<bool_t xdr_vector(XDR *>I<xdrs>B<, char *>I<arrp>B<, unsigned int "
2786 "B< unsigned int >I<elsize>B<, xdrproc_t >I<elproc>B<);>\n"
2790 #: build/C/man3/xdr.3:514
2792 "A filter primitive that translates between fixed-length arrays and their "
2793 "corresponding external representations. The argument I<arrp> is the address "
2794 "of the pointer to the array, while I<size> is the element count of the "
2795 "array. The argument I<elsize> is the I<sizeof> each of the array's "
2796 "elements, and I<elproc> is an XDR filter that translates between the array "
2797 "elements' C form, and their external representation. This routine returns "
2798 "one if it succeeds, zero otherwise."
2802 #: build/C/man3/xdr.3:517
2804 msgid "B<bool_t xdr_void(void);>\n"
2808 #: build/C/man3/xdr.3:522
2810 "This routine always returns one. It may be passed to RPC routines that "
2811 "require a function argument, where nothing is to be done."
2815 #: build/C/man3/xdr.3:525
2817 msgid "B<bool_t xdr_wrapstring(XDR *>I<xdrs>B<, char **>I<sp>B<);>\n"
2821 #: build/C/man3/xdr.3:538
2823 "A primitive that calls B<xdr_string(xdrs, sp,MAXUN.UNSIGNED );> where "
2824 "B<MAXUN.UNSIGNED> is the maximum value of an unsigned integer. "
2825 "B<xdr_wrapstring>() is handy because the RPC package passes a maximum of "
2826 "two XDR routines as arguments, and B<xdr_string>(), one of the most "
2827 "frequently used primitives, requires three. Returns one if it succeeds, "
2832 #: build/C/man3/xdr.3:540
2837 #: build/C/man3/xdr.3:544
2838 msgid "eXternal Data Representation Standard: Protocol Specification"
2842 #: build/C/man3/xdr.3:546
2843 msgid "eXternal Data Representation: Sun Technical Notes"
2847 #: build/C/man3/xdr.3:550
2849 "I<XDR: External Data Representation Standard>, RFC\\ 1014, Sun Microsystems, "