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: 2014-06-03 01:29+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=UTF-8\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. NULL is "
195 "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:82
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:133 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:138 build/C/man3/xdr.3:555
257 #: build/C/man3/getrpcent.3:123 build/C/man3/getrpcent_r.3:145 build/C/man3/getrpcport.3:47 build/C/man3/key_setsecret.3:78 build/C/man3/rpc.3:1129 build/C/man5/rpc.5:90 build/C/man3/rtime.3:146 build/C/man3/xdr.3:563
259 "This page is part of release 3.67 of the Linux I<man-pages> project. A "
260 "description of the project, information about reporting bugs, and the latest "
261 "version of this page, can be found at "
262 "\\%http://www.kernel.org/doc/man-pages/."
266 #: build/C/man3/getrpcent_r.3:26
272 #: build/C/man3/getrpcent_r.3:26
278 #: build/C/man3/getrpcent_r.3:26 build/C/man3/rtime.3:12
284 #: build/C/man3/getrpcent_r.3:30
285 msgid "getrpcent_r, getrpcbyname_r, getrpcbynumber_r - get RPC entry (reentrant)"
289 #: build/C/man3/getrpcent_r.3:36
292 "B<int getrpcent_r(struct rpcent *>I<result_buf>B<, char *>I<buf>B<,>\n"
293 "B< size_t >I<buflen>B<, struct rpcent **>I<result>B<);>\n"
297 #: build/C/man3/getrpcent_r.3:40
300 "B<int getrpcbyname_r(const char *>I<name>B<,>\n"
301 "B< struct rpcent *>I<result_buf>B<, char *>I<buf>B<,>\n"
302 "B< size_t >I<buflen>B<, struct rpcent **>I<result>B<);>\n"
306 #: build/C/man3/getrpcent_r.3:44
309 "B<int getrpcbynumber_r(int >I<number>B<,>\n"
310 "B< struct rpcent *>I<result_buf>B<, char *>I<buf>B<,>\n"
311 "B< size_t >I<buflen>B<, struct rpcent **>I<result>B<);>\n"
315 #: build/C/man3/getrpcent_r.3:49
316 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
320 #: build/C/man3/getrpcent_r.3:55
321 msgid "B<getrpcent_r>(), B<getrpcbyname_r>(), B<getrpcbynumber_r>():"
325 #: build/C/man3/getrpcent_r.3:57
326 msgid "_BSD_SOURCE || _SVID_SOURCE"
330 #: build/C/man3/getrpcent_r.3:76
332 "The B<getrpcent_r>(), B<getrpcbyname_r>(), and B<getrpcbynumber_r>() "
333 "functions are the reentrant equivalents of, respectively, B<getrpcent>(3), "
334 "B<getrpcbyname>(3), and B<getrpcbynumber>(3). They differ in the way that "
335 "the I<rpcent> structure is returned, and in the function calling signature "
336 "and return value. This manual page describes just the differences from the "
337 "nonreentrant functions."
341 #: build/C/man3/getrpcent_r.3:82
343 "Instead of returning a pointer to a statically allocated I<rpcent> structure "
344 "as the function result, these functions copy the structure into the location "
345 "pointed to by I<result_buf>."
348 #. I can find no information on the required/recommended buffer size;
349 #. the nonreentrant functions use a 1024 byte buffer -- mtk.
351 #: build/C/man3/getrpcent_r.3:99
353 "The I<buf> array is used to store the string fields pointed to by the "
354 "returned I<rpcent> structure. (The nonreentrant functions allocate these "
355 "strings in static storage.) The size of this array is specified in "
356 "I<buflen>. If I<buf> is too small, the call fails with the error B<ERANGE>, "
357 "and the caller must try again with a larger buffer. (A buffer of length "
358 "1024 bytes should be sufficient for most applications.)"
362 #: build/C/man3/getrpcent_r.3:107
364 "If the function call successfully obtains an RPC record, then I<*result> is "
365 "set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
369 #: build/C/man3/getrpcent_r.3:110
371 "On success, these functions return 0. On error, they return one of the "
372 "positive error numbers listed in ERRORS."
376 #: build/C/man3/getrpcent_r.3:118
378 "On error, record not found (B<getrpcbyname_r>(), B<getrpcbynumber_r>()), or "
379 "end of input (B<getrpcent_r>()) I<result> is set to NULL."
383 #: build/C/man3/getrpcent_r.3:118 build/C/man3/rtime.3:42
389 #: build/C/man3/getrpcent_r.3:119
395 #: build/C/man3/getrpcent_r.3:123
396 msgid "(B<getrpcent_r>()) No more records in database."
400 #: build/C/man3/getrpcent_r.3:123
406 #: build/C/man3/getrpcent_r.3:130
408 "I<buf> is too small. Try again with a larger buffer (and increased "
413 #: build/C/man3/getrpcent_r.3:134
415 "These functions are GNU extensions. Functions with similar names exist on "
416 "some other systems, though typically with different calling signatures."
420 #: build/C/man3/getrpcent_r.3:137
421 msgid "B<getrpcent>(3), B<rpc>(5)"
425 #: build/C/man3/getrpcport.3:8
431 #: build/C/man3/getrpcport.3:8
437 #: build/C/man3/getrpcport.3:11
438 msgid "getrpcport - get RPC port number"
442 #: build/C/man3/getrpcport.3:15
445 "B<int getrpcport(char *>I<host>B<, int >I<prognum>B<, int >I<versnum>B<, int "
450 #: build/C/man3/getrpcport.3:36
452 "B<getrpcport>() returns the port number for version I<versnum> of the RPC "
453 "program I<prognum> running on I<host> and using protocol I<proto>. It "
454 "returns 0 if it cannot contact the portmapper, or if I<prognum> is not "
455 "registered. If I<prognum> is registered but not with version I<versnum>, it "
456 "will still return a port number (for some version of the program) "
457 "indicating that the program is indeed registered. The version mismatch will "
458 "be detected upon the first call to the service."
462 #: build/C/man3/key_setsecret.3:9
464 msgid "KEY_SETSECRET"
468 #: build/C/man3/key_setsecret.3:9
474 #: build/C/man3/key_setsecret.3:13
476 "key_decryptsession, key_encryptsession, key_setsecret, key_gendes, "
477 "key_secretkey_is_set - interfaces to rpc keyserver daemon"
481 #: build/C/man3/key_setsecret.3:15
482 msgid "B<#include E<lt>rpc/rpc.hE<gt>>"
486 #: build/C/man3/key_setsecret.3:18
488 "B<int key_decryptsession(const char *>I<remotename>B<,> B<des_block "
493 #: build/C/man3/key_setsecret.3:21
495 "B<int key_encryptsession(const char *>I<remotename>B<,> B<des_block "
500 #: build/C/man3/key_setsecret.3:23
501 msgid "B<int key_gendes(des_block *>I<deskey>B<);>"
505 #: build/C/man3/key_setsecret.3:25
506 msgid "B<int key_setsecret(const char *>I<key>B<);>"
510 #: build/C/man3/key_setsecret.3:27
511 msgid "B<int key_secretkey_is_set(void);>"
515 #: build/C/man3/key_setsecret.3:32
517 "The functions here are used within the RPC's secure authentication mechanism "
518 "(AUTH_DES). There should be no need for user programs to use this "
523 #: build/C/man3/key_setsecret.3:39
525 "The function B<key_decryptsession>() uses the (remote) server netname and "
526 "takes the DES key for decrypting. It uses the public key of the server and "
527 "the secret key associated with the effective UID of the calling process."
531 #: build/C/man3/key_setsecret.3:46
533 "The function B<key_encryptsession>() is the inverse of "
534 "B<key_decryptsession>(). It encrypts the DES keys with the public key of "
535 "the server and the secret key associated with the effective UID of the "
540 #: build/C/man3/key_setsecret.3:50
542 "The function B<key_gendes>() is used to ask the keyserver for a secure "
547 #: build/C/man3/key_setsecret.3:54
549 "The function B<key_setsecret>() is used to set the key for the effective "
550 "UID of the calling process."
554 #: build/C/man3/key_setsecret.3:59
556 "The function B<key_secretkey_is_set>() can be used to determine whether a "
557 "key has been set for the effective UID of the calling process."
561 #: build/C/man3/key_setsecret.3:61
562 msgid "These functions return 1 on success and 0 on failure."
566 #: build/C/man3/key_setsecret.3:61 build/C/man3/rtime.3:62
572 #: build/C/man3/key_setsecret.3:66
574 "Note that we talk about two types of encryption here. One is asymmetric "
575 "using a public and secret key. The other is symmetric, the 64-bit DES."
579 #: build/C/man3/key_setsecret.3:68
580 msgid "These routines were part of the Linux/Doors-project, abandoned by now."
584 #: build/C/man3/key_setsecret.3:70
589 #: build/C/man3/rpc.3:11 build/C/man5/rpc.5:8
595 #: build/C/man3/rpc.3:11
601 #: build/C/man3/rpc.3:14
602 msgid "rpc - library routines for remote procedure calls"
606 #: build/C/man3/rpc.3:14 build/C/man3/xdr.3:14
608 msgid "SYNOPSIS AND DESCRIPTION"
612 #. We don't have an rpc_secure.3 page at the moment -- MTK, 19 Sep 05
613 #. Routines that are used for Secure RPC (DES authentication) are described in
614 #. .BR rpc_secure (3).
615 #. Secure RPC can be used only if DES encryption is available.
617 #: build/C/man3/rpc.3:26
619 "These routines allow C programs to make procedure calls on other machines "
620 "across the network. First, the client calls a procedure to send a data "
621 "packet to the server. Upon receipt of the packet, the server calls a "
622 "dispatch routine to perform the requested service, and then sends back a "
623 "reply. Finally, the procedure call returns to the client."
627 #: build/C/man3/rpc.3:29
629 "To take use of these routines, include the header file "
630 "I<E<lt>rpc/rpc.hE<gt>>."
634 #: build/C/man3/rpc.3:31
635 msgid "The prototypes below make use of the following types:"
639 #: build/C/man3/rpc.3:35 build/C/man3/xdr.3:28
641 msgid "B<typedef int >I<bool_t>B<;>\n"
645 #: build/C/man3/rpc.3:37
647 msgid "B<typedef bool_t (*>I<xdrproc_t>B<) (XDR *, void *, ...);>\n"
651 #: build/C/man3/rpc.3:40
654 "B<typedef bool_t (*>I<resultproc_t>B<) (caddr_t >I<resp>B<,>\n"
655 "B< struct sockaddr_in *>I<raddr>B<);>\n"
659 #: build/C/man3/rpc.3:50
661 "See the header files for the declarations of the I<AUTH>, I<CLIENT>, "
662 "I<SVCXPRT>, and I<XDR> types."
666 #: build/C/man3/rpc.3:53
668 msgid "B<void auth_destroy(AUTH *>I<auth>B<);>\n"
672 #: build/C/man3/rpc.3:62
674 "A macro that destroys the authentication information associated with "
675 "I<auth>. Destruction usually involves deallocation of private data "
676 "structures. The use of I<auth> is undefined after calling "
681 #: build/C/man3/rpc.3:65
683 msgid "B<AUTH *authnone_create(void);>\n"
687 #: build/C/man3/rpc.3:71
689 "Create and return an RPC authentication handle that passes nonusable "
690 "authentication information with each remote procedure call. This is the "
691 "default authentication used by RPC."
695 #: build/C/man3/rpc.3:75
698 "B<AUTH *authunix_create(char *>I<host>B<, int >I<uid>B<, int >I<gid>B<,>\n"
699 "B< int >I<len>B<, int *>I<aup_gids>B<);>\n"
703 #: build/C/man3/rpc.3:91
705 "Create and return an RPC authentication handle that contains authentication "
706 "information. The parameter I<host> is the name of the machine on which the "
707 "information was created; I<uid> is the user's user ID; I<gid> is the user's "
708 "current group ID; I<len> and I<aup_gids> refer to a counted array of groups "
709 "to which the user belongs. It is easy to impersonate a user."
713 #: build/C/man3/rpc.3:94
715 msgid "B<AUTH *authunix_create_default(void);>\n"
719 #: build/C/man3/rpc.3:99
720 msgid "Calls B<authunix_create>() with the appropriate parameters."
724 #: build/C/man3/rpc.3:105
727 "B<int callrpc(char *>I<host>B<, unsigned long >I<prognum>B<,>\n"
728 "B< unsigned long >I<versnum>B<, unsigned long >I<procnum>B<,>\n"
729 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
730 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<);>\n"
734 #: build/C/man3/rpc.3:129
736 "Call the remote procedure associated with I<prognum>, I<versnum>, and "
737 "I<procnum> on the machine, I<host>. The parameter I<in> is the address of "
738 "the procedure's argument(s), and I<out> is the address of where to place the "
739 "result(s); I<inproc> is used to encode the procedure's parameters, and "
740 "I<outproc> is used to decode the procedure's results. This routine returns "
741 "zero if it succeeds, or the value of B<enum clnt_stat> cast to an integer if "
742 "it fails. The routine B<clnt_perrno>() is handy for translating failure "
743 "statuses into messages."
747 #: build/C/man3/rpc.3:135
749 "Warning: calling remote procedures with this routine uses UDP/IP as a "
750 "transport; see B<clntudp_create>() for restrictions. You do not have "
751 "control of timeouts or authentication using this routine."
755 #: build/C/man3/rpc.3:142
758 "B<enum clnt_stat clnt_broadcast(unsigned long >I<prognum>B<,>\n"
759 "B< unsigned long >I<versnum>B<, unsigned long "
761 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
762 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<,>\n"
763 "B< resultproc_t >I<eachresult>B<);>\n"
767 #: build/C/man3/rpc.3:151
769 "Like B<callrpc>(), except the call message is broadcast to all locally "
770 "connected broadcast nets. Each time it receives a response, this routine "
771 "calls B<eachresult>(), whose form is:"
775 #: build/C/man3/rpc.3:155
777 msgid "B<eachresult(char *>I<out>B<, struct sockaddr_in *>I<addr>B<);>\n"
781 #: build/C/man3/rpc.3:172
783 "where I<out> is the same as I<out> passed to B<clnt_broadcast>(), except "
784 "that the remote procedure's output is decoded there; I<addr> points to the "
785 "address of the machine that sent the results. If B<eachresult>() returns "
786 "zero, B<clnt_broadcast>() waits for more replies; otherwise it returns with "
787 "appropriate status."
791 #: build/C/man3/rpc.3:176
793 "Warning: broadcast sockets are limited in size to the maximum transfer unit "
794 "of the data link. For ethernet, this value is 1500 bytes."
798 #: build/C/man3/rpc.3:182
801 "B<enum clnt_stat clnt_call(CLIENT *>I<clnt>B<, unsigned long "
803 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
804 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<,>\n"
805 "B< struct timeval >I<tout>B<);>\n"
809 #: build/C/man3/rpc.3:201
811 "A macro that calls the remote procedure I<procnum> associated with the "
812 "client handle, I<clnt>, which is obtained with an RPC client creation "
813 "routine such as B<clnt_create>(). The parameter I<in> is the address of the "
814 "procedure's argument(s), and I<out> is the address of where to place the "
815 "result(s); I<inproc> is used to encode the procedure's parameters, and "
816 "I<outproc> is used to decode the procedure's results; I<tout> is the time "
817 "allowed for results to come back."
821 #: build/C/man3/rpc.3:204
823 msgid "B<clnt_destroy(CLIENT *>I<clnt>B<);>\n"
827 #: build/C/man3/rpc.3:217
829 "A macro that destroys the client's RPC handle. Destruction usually involves "
830 "deallocation of private data structures, including I<clnt> itself. Use of "
831 "I<clnt> is undefined after calling B<clnt_destroy>(). If the RPC library "
832 "opened the associated socket, it will close it also. Otherwise, the socket "
837 #: build/C/man3/rpc.3:221
840 "B<CLIENT *clnt_create(char *>I<host>B<, unsigned long >I<prog>B<,>\n"
841 "B< unsigned long >I<vers>B<, char *>I<proto>B<);>\n"
845 #: build/C/man3/rpc.3:232
847 "Generic client creation routine. I<host> identifies the name of the remote "
848 "host where the server is located. I<proto> indicates which kind of "
849 "transport protocol to use. The currently supported values for this field "
850 "are \\(lqudp\\(rq and \\(lqtcp\\(rq. Default timeouts are set, but can be "
851 "modified using B<clnt_control>()."
855 #: build/C/man3/rpc.3:237
857 "Warning: Using UDP has its shortcomings. Since UDP-based RPC messages can "
858 "hold only up to 8 Kbytes of encoded data, this transport cannot be used for "
859 "procedures that take large arguments or return huge results."
863 #: build/C/man3/rpc.3:240
865 msgid "B<bool_t clnt_control(CLIENT *>I<cl>B<, int >I<req>B<, char *>I<info>B<);>\n"
869 #: build/C/man3/rpc.3:251
871 "A macro used to change or retrieve various information about a client "
872 "object. I<req> indicates the type of operation, and I<info> is a pointer to "
873 "the information. For both UDP and TCP, the supported values of I<req> and "
874 "their argument types and what they do are:"
878 #: build/C/man3/rpc.3:256
881 "B<CLSET_TIMEOUT> I<struct timeval> // set total timeout\n"
882 "B<CLGET_TIMEOUT> I<struct timeval> // get total timeout\n"
886 #: build/C/man3/rpc.3:264
888 "Note: if you set the timeout using B<clnt_control>(), the timeout parameter "
889 "passed to B<clnt_call>() will be ignored in all future calls."
893 #: build/C/man3/rpc.3:268
895 msgid "B<CLGET_SERVER_ADDR> I<struct sockaddr_in > // get server's address\n"
899 #: build/C/man3/rpc.3:272
900 msgid "The following operations are valid for UDP only:"
904 #: build/C/man3/rpc.3:277
907 "B<CLSET_RETRY_TIMEOUT> I<struct timeval> // set the retry timeout\n"
908 "B<CLGET_RETRY_TIMEOUT> I<struct timeval> // get the retry timeout\n"
912 #: build/C/man3/rpc.3:283
914 "The retry timeout is the time that \"UDP RPC\" waits for the server to reply "
915 "before retransmitting the request."
919 #: build/C/man3/rpc.3:286
922 "B<clnt_freeres(CLIENT * >I<clnt>B<, xdrproc_t >I<outproc>B<, char "
927 #: build/C/man3/rpc.3:297
929 "A macro that frees any data allocated by the RPC/XDR system when it decoded "
930 "the results of an RPC call. The parameter I<out> is the address of the "
931 "results, and I<outproc> is the XDR routine describing the results. This "
932 "routine returns one if the results were successfully freed, and zero "
937 #: build/C/man3/rpc.3:300
939 msgid "B<void clnt_geterr(CLIENT *>I<clnt>B<, struct rpc_err *>I<errp>B<);>\n"
943 #: build/C/man3/rpc.3:305
945 "A macro that copies the error structure out of the client handle to the "
946 "structure at address I<errp>."
950 #: build/C/man3/rpc.3:308
952 msgid "B<void clnt_pcreateerror(char *>I<s>B<);>\n"
956 #: build/C/man3/rpc.3:322
958 "Print a message to standard error indicating why a client RPC handle could "
959 "not be created. The message is prepended with string I<s> and a colon. "
960 "Used when a B<clnt_create>(), B<clntraw_create>(), B<clnttcp_create>(), or "
961 "B<clntudp_create>() call fails."
965 #: build/C/man3/rpc.3:325
967 msgid "B<void clnt_perrno(enum clnt_stat >I<stat>B<);>\n"
971 #: build/C/man3/rpc.3:332
973 "Print a message to standard error corresponding to the condition indicated "
974 "by I<stat>. Used after B<callrpc>()."
978 #: build/C/man3/rpc.3:335
980 msgid "B<clnt_perror(CLIENT *>I<clnt>B<, char *>I<s>B<);>\n"
984 #: build/C/man3/rpc.3:345
986 "Print a message to standard error indicating why an RPC call failed; I<clnt> "
987 "is the handle used to do the call. The message is prepended with string "
988 "I<s> and a colon. Used after B<clnt_call>()."
992 #: build/C/man3/rpc.3:348
994 msgid "B<char *clnt_spcreateerror(char *>I<s>B<);>\n"
998 #: build/C/man3/rpc.3:353
1000 "Like B<clnt_pcreateerror>(), except that it returns a string instead of "
1001 "printing to the standard error."
1005 #: build/C/man3/rpc.3:355 build/C/man3/rpc.3:395
1006 msgid "Bugs: returns pointer to static data that is overwritten on each call."
1010 #: build/C/man3/rpc.3:358
1012 msgid "B<char *clnt_sperrno(enum clnt_stat >I<stat>B<);>\n"
1016 #: build/C/man3/rpc.3:365
1018 "Take the same arguments as B<clnt_perrno>(), but instead of sending a "
1019 "message to the standard error indicating why an RPC call failed, return a "
1020 "pointer to a string which contains the message. The string ends with a "
1025 #: build/C/man3/rpc.3:383
1027 "B<clnt_sperrno>() is used instead of B<clnt_perrno>() if the program does "
1028 "not have a standard error (as a program running as a server quite likely "
1029 "does not), or if the programmer does not want the message to be output with "
1030 "B<printf>(3), or if a message format different than that supported by "
1031 "B<clnt_perrno>() is to be used. Note: unlike B<clnt_sperror>() and "
1032 "B<clnt_spcreaterror>(), B<clnt_sperrno>() returns pointer to static data, "
1033 "but the result will not get overwritten on each call."
1037 #: build/C/man3/rpc.3:386
1039 msgid "B<char *clnt_sperror(CLIENT *>I<rpch>B<, char *>I<s>B<);>\n"
1043 #: build/C/man3/rpc.3:393
1045 "Like B<clnt_perror>(), except that (like B<clnt_sperrno>()) it returns a "
1046 "string instead of printing to standard error."
1050 #: build/C/man3/rpc.3:399
1053 "B<CLIENT *clntraw_create(unsigned long >I<prognum>B<, unsigned long "
1054 ">I<versnum>B<);>\n"
1058 #: build/C/man3/rpc.3:412
1060 "This routine creates a toy RPC client for the remote program I<prognum>, "
1061 "version I<versnum>. The transport used to pass messages to the service is "
1062 "actually a buffer within the process's address space, so the corresponding "
1063 "RPC server should live in the same address space; see B<svcraw_create>(). "
1064 "This allows simulation of RPC and acquisition of RPC overheads, such as "
1065 "round trip times, without any kernel interference. This routine returns "
1070 #: build/C/man3/rpc.3:418
1073 "B<CLIENT *clnttcp_create(struct sockaddr_in *>I<addr>B<,>\n"
1074 "B< unsigned long >I<prognum>B<, unsigned long "
1076 "B< int *>I<sockp>B<, unsigned int >I<sendsz>B<, unsigned int "
1080 #. The following inline font conversion is necessary for the hyphen indicator
1082 #: build/C/man3/rpc.3:448
1084 "This routine creates an RPC client for the remote program I<prognum>, "
1085 "version I<versnum>; the client uses TCP/IP as a transport. The remote "
1086 "program is located at Internet address I<*addr>. If I<addr-E<gt>sin_port> "
1087 "is zero, then it is set to the actual port that the remote program is "
1088 "listening on (the remote B<portmap> service is consulted for this "
1089 "information). The parameter I<sockp> is a socket; if it is B<RPC_ANYSOCK>, "
1090 "then this routine opens a new one and sets I<sockp>. Since TCP-based RPC "
1091 "uses buffered I/O, the user may specify the size of the send and receive "
1092 "buffers with the parameters I<sendsz> and I<recvsz>; values of zero choose "
1093 "suitable defaults. This routine returns NULL if it fails."
1097 #: build/C/man3/rpc.3:453
1100 "B<CLIENT *clntudp_create(struct sockaddr_in *>I<addr>B<,>\n"
1101 "B< unsigned long >I<prognum>B<, unsigned long "
1103 "B< struct timeval >I<wait>B<, int *>I<sockp>B<);>\n"
1107 #: build/C/man3/rpc.3:479
1109 "This routine creates an RPC client for the remote program I<prognum>, "
1110 "version I<versnum>; the client uses use UDP/IP as a transport. The remote "
1111 "program is located at Internet address I<addr>. If I<addr-E<gt>sin_port> is "
1112 "zero, then it is set to actual port that the remote program is listening on "
1113 "(the remote B<portmap> service is consulted for this information). The "
1114 "parameter I<sockp> is a socket; if it is B<RPC_ANYSOCK>, then this routine "
1115 "opens a new one and sets I<sockp>. The UDP transport resends the call "
1116 "message in intervals of I<wait> time until a response is received or until "
1117 "the call times out. The total time for the call to time out is specified by "
1122 #: build/C/man3/rpc.3:483
1124 "Warning: since UDP-based RPC messages can hold only up to 8 Kbytes of "
1125 "encoded data, this transport cannot be used for procedures that take large "
1126 "arguments or return huge results."
1130 #: build/C/man3/rpc.3:489
1133 "B<CLIENT *clntudp_bufcreate(struct sockaddr_in *>I<addr>B<,>\n"
1134 "B< unsigned long >I<prognum>B<, unsigned long >I<versnum>B<,>\n"
1135 "B< struct timeval >I<wait>B<, int *>I<sockp>B<,>\n"
1136 "B< unsigned int >I<sendsize>B<, unsigned int >I<recosize>B<);>\n"
1140 #: build/C/man3/rpc.3:515
1142 "This routine creates an RPC client for the remote program I<prognum>, on "
1143 "I<versnum>; the client uses use UDP/IP as a transport. The remote program "
1144 "is located at Internet address I<addr>. If I<addr-E<gt>sin_port> is zero, "
1145 "then it is set to actual port that the remote program is listening on (the "
1146 "remote B<portmap> service is consulted for this information). The parameter "
1147 "I<sockp> is a socket; if it is B<RPC_ANYSOCK>, then this routine opens a new "
1148 "one and sets I<sockp>. The UDP transport resends the call message in "
1149 "intervals of I<wait> time until a response is received or until the call "
1150 "times out. The total time for the call to time out is specified by "
1155 #: build/C/man3/rpc.3:518 build/C/man3/rpc.3:995
1157 "This allows the user to specify the maximum packet size for sending and "
1158 "receiving UDP-based RPC messages."
1162 #: build/C/man3/rpc.3:521
1164 msgid "B<void get_myaddress(struct sockaddr_in *>I<addr>B<);>\n"
1168 #: build/C/man3/rpc.3:529
1170 "Stuff the machine's IP address into I<*addr>, without consulting the library "
1171 "routines that deal with I</etc/hosts>. The port number is always set to "
1172 "B<htons(PMAPPORT)>."
1176 #: build/C/man3/rpc.3:532
1178 msgid "B<struct pmaplist *pmap_getmaps(struct sockaddr_in *>I<addr>B<);>\n"
1182 #: build/C/man3/rpc.3:543
1184 "A user interface to the B<portmap> service, which returns a list of the "
1185 "current RPC program-to-port mappings on the host located at IP address "
1186 "I<*addr>. This routine can return NULL. The command I<rpcinfo\\ -p> uses "
1191 #: build/C/man3/rpc.3:548
1194 "B<unsigned short pmap_getport(struct sockaddr_in *>I<addr>B<,>\n"
1195 "B< unsigned long >I<prognum>B<, unsigned long "
1197 "B< unsigned int >I<protocol>B<);>\n"
1201 #: build/C/man3/rpc.3:572
1203 "A user interface to the B<portmap> service, which returns the port number on "
1204 "which waits a service that supports program number I<prognum>, version "
1205 "I<versnum>, and speaks the transport protocol associated with I<protocol>. "
1206 "The value of I<protocol> is most likely B<IPPROTO_UDP> or B<IPPROTO_TCP>. A "
1207 "return value of zero means that the mapping does not exist or that the RPC "
1208 "system failed to contact the remote B<portmap> service. In the latter case, "
1209 "the global variable I<rpc_createerr> contains the RPC status."
1213 #: build/C/man3/rpc.3:580
1216 "B<enum clnt_stat pmap_rmtcall(struct sockaddr_in *>I<addr>B<,>\n"
1217 "B< unsigned long >I<prognum>B<, unsigned long "
1219 "B< unsigned long >I<procnum>B<,>\n"
1220 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
1221 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<,>\n"
1222 "B< struct timeval >I<tout>B<, unsigned long "
1227 #: build/C/man3/rpc.3:600
1229 "A user interface to the B<portmap> service, which instructs B<portmap> on "
1230 "the host at IP address I<*addr> to make an RPC call on your behalf to a "
1231 "procedure on that host. The parameter I<*portp> will be modified to the "
1232 "program's port number if the procedure succeeds. The definitions of other "
1233 "parameters are discussed in B<callrpc>() and B<clnt_call>(). This "
1234 "procedure should be used for a \\(lqping\\(rq and nothing else. See also "
1235 "B<clnt_broadcast>()."
1239 #: build/C/man3/rpc.3:604
1242 "B<bool_t pmap_set(unsigned long >I<prognum>B<, unsigned long "
1244 "B< unsigned int >I<protocol>B<, unsigned short "
1249 #: build/C/man3/rpc.3:624
1251 "A user interface to the B<portmap> service, which establishes a mapping "
1252 "between the triple [I<prognum>,I<versnum>,I<protocol>] and I<port> on the "
1253 "machine's B<portmap> service. The value of I<protocol> is most likely "
1254 "B<IPPROTO_UDP> or B<IPPROTO_TCP>. This routine returns one if it succeeds, "
1255 "zero otherwise. Automatically done by B<svc_register>()."
1259 #: build/C/man3/rpc.3:627
1262 "B<bool_t pmap_unset(unsigned long >I<prognum>B<, unsigned long "
1263 ">I<versnum>B<);>\n"
1267 #: build/C/man3/rpc.3:639
1269 "A user interface to the B<portmap> service, which destroys all mapping "
1270 "between the triple [I<prognum>,I<versnum>,I<*>] and B<ports> on the "
1271 "machine's B<portmap> service. This routine returns one if it succeeds, zero "
1276 #: build/C/man3/rpc.3:644
1279 "B<int registerrpc(unsigned long >I<prognum>B<, unsigned long "
1281 "B< unsigned long >I<procnum>B<, char *(*>I<procname>B<)(char "
1283 "B< xdrproc_t >I<inproc>B<, xdrproc_t >I<outproc>B<);>\n"
1287 #: build/C/man3/rpc.3:664
1289 "Register procedure I<procname> with the RPC service package. If a request "
1290 "arrives for program I<prognum>, version I<versnum>, and procedure "
1291 "I<procnum>, I<procname> is called with a pointer to its parameter(s); "
1292 "I<progname> should return a pointer to its static result(s); I<inproc> is "
1293 "used to decode the parameters while I<outproc> is used to encode the "
1294 "results. This routine returns zero if the registration succeeded, -1 "
1299 #: build/C/man3/rpc.3:669
1301 "Warning: remote procedures registered in this form are accessed using the "
1302 "UDP/IP transport; see B<svcudp_create>() for restrictions."
1306 #: build/C/man3/rpc.3:672
1308 msgid "B<struct rpc_createerr >I<rpc_createerr>B<;>\n"
1312 #: build/C/man3/rpc.3:679
1314 "A global variable whose value is set by any RPC client creation routine that "
1315 "does not succeed. Use the routine B<clnt_pcreateerror>() to print the "
1320 #: build/C/man3/rpc.3:682
1322 msgid "B<void svc_destroy(SVCXPRT *>I<xprt>B<);>\n"
1326 #: build/C/man3/rpc.3:693
1328 "A macro that destroys the RPC service transport handle, I<xprt>. "
1329 "Destruction usually involves deallocation of private data structures, "
1330 "including I<xprt> itself. Use of I<xprt> is undefined after calling this "
1335 #: build/C/man3/rpc.3:696
1337 msgid "B<fd_set >I<svc_fdset>B<;>\n"
1341 #: build/C/man3/rpc.3:710
1343 "A global variable reflecting the RPC service side's read file descriptor bit "
1344 "mask; it is suitable as a parameter to the B<select>(2) system call. This "
1345 "is of interest only if a service implementor does their own asynchronous "
1346 "event processing, instead of calling B<svc_run>(). This variable is "
1347 "read-only (do not pass its address to B<select>(2)!), yet it may change "
1348 "after calls to B<svc_getreqset>() or any creation routines."
1352 #: build/C/man3/rpc.3:713
1354 msgid "B<int >I<svc_fds>B<;>\n"
1358 #: build/C/man3/rpc.3:720
1360 "Similar to B<svc_fdset>, but limited to 32 descriptors. This interface is "
1361 "obsoleted by B<svc_fdset>."
1365 #: build/C/man3/rpc.3:723
1368 "B<svc_freeargs(SVCXPRT *>I<xprt>B<, xdrproc_t >I<inproc>B<, char "
1373 #: build/C/man3/rpc.3:730
1375 "A macro that frees any data allocated by the RPC/XDR system when it decoded "
1376 "the arguments to a service procedure using B<svc_getargs>(). This routine "
1377 "returns 1 if the results were successfully freed, and zero otherwise."
1381 #: build/C/man3/rpc.3:733
1384 "B<svc_getargs(SVCXPRT *>I<xprt>B<, xdrproc_t >I<inproc>B<, char "
1389 #: build/C/man3/rpc.3:744
1391 "A macro that decodes the arguments of an RPC request associated with the RPC "
1392 "service transport handle, I<xprt>. The parameter I<in> is the address where "
1393 "the arguments will be placed; I<inproc> is the XDR routine used to decode "
1394 "the arguments. This routine returns one if decoding succeeds, and zero "
1399 #: build/C/man3/rpc.3:747
1401 msgid "B<struct sockaddr_in *svc_getcaller(SVCXPRT *>I<xprt>B<);>\n"
1405 #: build/C/man3/rpc.3:752
1407 "The approved way of getting the network address of the caller of a procedure "
1408 "associated with the RPC service transport handle, I<xprt>."
1412 #: build/C/man3/rpc.3:755
1414 msgid "B<void svc_getreqset(fd_set *>I<rdfds>B<);>\n"
1418 #: build/C/man3/rpc.3:769
1420 "This routine is of interest only if a service implementor does not call "
1421 "B<svc_run>(), but instead implements custom asynchronous event processing. "
1422 "It is called when the B<select>(2) system call has determined that an RPC "
1423 "request has arrived on some RPC socket(s); I<rdfds> is the resultant read "
1424 "file descriptor bit mask. The routine returns when all sockets associated "
1425 "with the value of I<rdfds> have been serviced."
1429 #: build/C/man3/rpc.3:772
1431 msgid "B<void svc_getreq(int >I<rdfds>B<);>\n"
1435 #: build/C/man3/rpc.3:779
1437 "Similar to B<svc_getreqset>(), but limited to 32 descriptors. This "
1438 "interface is obsoleted by B<svc_getreqset>()."
1442 #: build/C/man3/rpc.3:785
1445 "B<bool_t svc_register(SVCXPRT *>I<xprt>B<, unsigned long >I<prognum>B<,>\n"
1446 "B< unsigned long >I<versnum>B<,>\n"
1447 "B< void (*>I<dispatch>B<)(svc_req *, SVCXPRT *),>\n"
1448 "B< unsigned long >I<protocol>B<);>\n"
1452 #: build/C/man3/rpc.3:815
1454 "Associates I<prognum> and I<versnum> with the service dispatch procedure, "
1455 "I<dispatch>. If I<protocol> is zero, the service is not registered with the "
1456 "B<portmap> service. If I<protocol> is nonzero, then a mapping of the triple "
1457 "[I<prognum>,I<versnum>,I<protocol>] to I<xprt-E<gt>xp_port> is established "
1458 "with the local B<portmap> service (generally I<protocol> is zero, "
1459 "B<IPPROTO_UDP> or B<IPPROTO_TCP>). The procedure I<dispatch> has the "
1464 #: build/C/man3/rpc.3:819
1466 msgid "dispatch(struct svc_req *request, SVCXPRT *xprt);\n"
1470 #: build/C/man3/rpc.3:825
1472 "The B<svc_register>() routine returns one if it succeeds, and zero "
1477 #: build/C/man3/rpc.3:828
1479 msgid "B<void svc_run(void);>\n"
1483 #: build/C/man3/rpc.3:838
1485 "This routine never returns. It waits for RPC requests to arrive, and calls "
1486 "the appropriate service procedure using B<svc_getreq>() when one arrives. "
1487 "This procedure is usually waiting for a B<select>(2) system call to return."
1491 #: build/C/man3/rpc.3:842
1494 "B<bool_t svc_sendreply(SVCXPRT *>I<xprt>B<, xdrproc_t >I<outproc>B<, char "
1499 #: build/C/man3/rpc.3:854
1501 "Called by an RPC service's dispatch routine to send the results of a remote "
1502 "procedure call. The parameter I<xprt> is the request's associated transport "
1503 "handle; I<outproc> is the XDR routine which is used to encode the results; "
1504 "and I<out> is the address of the results. This routine returns one if it "
1505 "succeeds, zero otherwise."
1509 #: build/C/man3/rpc.3:857
1512 "B<void svc_unregister(unsigned long >I<prognum>B<, unsigned long "
1513 ">I<versnum>B<);>\n"
1517 #: build/C/man3/rpc.3:864
1519 "Remove all mapping of the double [I<prognum>,I<versnum>] to dispatch "
1520 "routines, and of the triple [I<prognum>,I<versnum>,I<*>] to port number."
1524 #: build/C/man3/rpc.3:867
1526 msgid "B<void svcerr_auth(SVCXPRT *>I<xprt>B<, enum auth_stat >I<why>B<);>\n"
1530 #: build/C/man3/rpc.3:871
1532 "Called by a service dispatch routine that refuses to perform a remote "
1533 "procedure call due to an authentication error."
1537 #: build/C/man3/rpc.3:874
1539 msgid "B<void svcerr_decode(SVCXPRT *>I<xprt>B<);>\n"
1543 #: build/C/man3/rpc.3:880
1545 "Called by a service dispatch routine that cannot successfully decode its "
1546 "parameters. See also B<svc_getargs>()."
1550 #: build/C/man3/rpc.3:883
1552 msgid "B<void svcerr_noproc(SVCXPRT *>I<xprt>B<);>\n"
1556 #: build/C/man3/rpc.3:887
1558 "Called by a service dispatch routine that does not implement the procedure "
1559 "number that the caller requests."
1563 #: build/C/man3/rpc.3:890
1565 msgid "B<void svcerr_noprog(SVCXPRT *>I<xprt>B<);>\n"
1569 #: build/C/man3/rpc.3:894
1571 "Called when the desired program is not registered with the RPC package. "
1572 "Service implementors usually do not need this routine."
1576 #: build/C/man3/rpc.3:897
1578 msgid "B<void svcerr_progvers(SVCXPRT *>I<xprt>B<);>\n"
1582 #: build/C/man3/rpc.3:902
1584 "Called when the desired version of a program is not registered with the RPC "
1585 "package. Service implementors usually do not need this routine."
1589 #: build/C/man3/rpc.3:905
1591 msgid "B<void svcerr_systemerr(SVCXPRT *>I<xprt>B<);>\n"
1595 #: build/C/man3/rpc.3:911
1597 "Called by a service dispatch routine when it detects a system error not "
1598 "covered by any particular protocol. For example, if a service can no longer "
1599 "allocate storage, it may call this routine."
1603 #: build/C/man3/rpc.3:914
1605 msgid "B<void svcerr_weakauth(SVCXPRT *>I<xprt>B<);>\n"
1609 #: build/C/man3/rpc.3:920
1611 "Called by a service dispatch routine that refuses to perform a remote "
1612 "procedure call due to insufficient authentication parameters. The routine "
1613 "calls B<svcerr_auth(xprt, AUTH_TOOWEAK)>."
1617 #: build/C/man3/rpc.3:924
1620 "B<SVCXPRT *svcfd_create(int >I<fd>B<, unsigned int >I<sendsize>B<,>\n"
1621 "B< unsigned int >I<recvsize>B<);>\n"
1625 #: build/C/man3/rpc.3:934
1627 "Create a service on top of any open descriptor. Typically, this descriptor "
1628 "is a connected socket for a stream protocol such as TCP. I<sendsize> and "
1629 "I<recvsize> indicate sizes for the send and receive buffers. If they are "
1630 "zero, a reasonable default is chosen."
1634 #: build/C/man3/rpc.3:937
1636 msgid "B<SVCXPRT *svcraw_create(void);>\n"
1640 #: build/C/man3/rpc.3:947
1642 "This routine creates a toy RPC service transport, to which it returns a "
1643 "pointer. The transport is really a buffer within the process's address "
1644 "space, so the corresponding RPC client should live in the same address "
1645 "space; see B<clntraw_create>(). This routine allows simulation of RPC and "
1646 "acquisition of RPC overheads (such as round trip times), without any kernel "
1647 "interference. This routine returns NULL if it fails."
1651 #: build/C/man3/rpc.3:951
1654 "B<SVCXPRT *svctcp_create(int >I<sock>B<, unsigned int "
1655 ">I<send_buf_size>B<,>\n"
1656 "B< unsigned int >I<recv_buf_size>B<);>\n"
1660 #: build/C/man3/rpc.3:971
1662 "This routine creates a TCP/IP-based RPC service transport, to which it "
1663 "returns a pointer. The transport is associated with the socket I<sock>, "
1664 "which may be B<RPC_ANYSOCK>, in which case a new socket is created. If the "
1665 "socket is not bound to a local TCP port, then this routine binds it to an "
1666 "arbitrary port. Upon completion, I<xprt-E<gt>xp_sock> is the transport's "
1667 "socket descriptor, and I<xprt-E<gt>xp_port> is the transport's port number. "
1668 "This routine returns NULL if it fails. Since TCP-based RPC uses buffered "
1669 "I/O, users may specify the size of buffers; values of zero choose suitable "
1674 #: build/C/man3/rpc.3:975
1677 "B<SVCXPRT *svcudp_bufcreate(int >I<sock>B<, unsigned int >I<sendsize>B<,>\n"
1678 "B< unsigned int >I<recosize>B<);>\n"
1682 #: build/C/man3/rpc.3:992
1684 "This routine creates a UDP/IP-based RPC service transport, to which it "
1685 "returns a pointer. The transport is associated with the socket I<sock>, "
1686 "which may be B<RPC_ANYSOCK>, in which case a new socket is created. If the "
1687 "socket is not bound to a local UDP port, then this routine binds it to an "
1688 "arbitrary port. Upon completion, I<xprt-E<gt>xp_sock> is the transport's "
1689 "socket descriptor, and I<xprt-E<gt>xp_port> is the transport's port number. "
1690 "This routine returns NULL if it fails."
1694 #: build/C/man3/rpc.3:998
1696 msgid "B<SVCXPRT *svcudp_create(int >I<sock>B<);>\n"
1700 #: build/C/man3/rpc.3:1004
1702 "This call is equivalent to I<svcudp_bufcreate(sock,SZ,SZ)> for some default "
1707 #: build/C/man3/rpc.3:1007
1710 "B<bool_t xdr_accepted_reply(XDR *>I<xdrs>B<, struct accepted_reply "
1715 #: build/C/man3/rpc.3:1012
1717 "Used for encoding RPC reply messages. This routine is useful for users who "
1718 "wish to generate RPC-style messages without using the RPC package."
1722 #: build/C/man3/rpc.3:1015
1725 "B<bool_t xdr_authunix_parms(XDR *>I<xdrs>B<, struct authunix_parms "
1730 #: build/C/man3/rpc.3:1021
1732 "Used for describing UNIX credentials. This routine is useful for users who "
1733 "wish to generate these credentials without using the RPC authentication "
1738 #: build/C/man3/rpc.3:1024
1740 msgid "B<void xdr_callhdr(XDR *>I<xdrs>B<, struct rpc_msg *>I<chdr>B<);>\n"
1744 #: build/C/man3/rpc.3:1029
1746 "Used for describing RPC call header messages. This routine is useful for "
1747 "users who wish to generate RPC-style messages without using the RPC package."
1751 #: build/C/man3/rpc.3:1032
1753 msgid "B<bool_t xdr_callmsg(XDR *>I<xdrs>B<, struct rpc_msg *>I<cmsg>B<);>\n"
1757 #: build/C/man3/rpc.3:1037
1759 "Used for describing RPC call messages. This routine is useful for users who "
1760 "wish to generate RPC-style messages without using the RPC package."
1764 #: build/C/man3/rpc.3:1040
1766 msgid "B<bool_t xdr_opaque_auth(XDR *>I<xdrs>B<, struct opaque_auth *>I<ap>B<);>\n"
1770 #: build/C/man3/rpc.3:1045
1772 "Used for describing RPC authentication information messages. This routine "
1773 "is useful for users who wish to generate RPC-style messages without using "
1778 #: build/C/man3/rpc.3:1048
1780 msgid "B<bool_t xdr_pmap(XDR *>I<xdrs>B<, struct pmap *>I<regs>B<);>\n"
1784 #: build/C/man3/rpc.3:1057
1786 "Used for describing parameters to various B<portmap> procedures, "
1787 "externally. This routine is useful for users who wish to generate these "
1788 "parameters without using the B<pmap> interface."
1792 #: build/C/man3/rpc.3:1060
1794 msgid "B<bool_t xdr_pmaplist(XDR *>I<xdrs>B<, struct pmaplist **>I<rp>B<);>\n"
1798 #: build/C/man3/rpc.3:1067
1800 "Used for describing a list of port mappings, externally. This routine is "
1801 "useful for users who wish to generate these parameters without using the "
1802 "B<pmap> interface."
1806 #: build/C/man3/rpc.3:1070
1809 "B<bool_t xdr_rejected_reply(XDR *>I<xdrs>B<, struct rejected_reply "
1814 #: build/C/man3/rpc.3:1075
1816 "Used for describing RPC reply messages. This routine is useful for users "
1817 "who wish to generate RPC-style messages without using the RPC package."
1821 #: build/C/man3/rpc.3:1078
1823 msgid "B<bool_t xdr_replymsg(XDR *>I<xdrs>B<, struct rpc_msg *>I<rmsg>B<);>\n"
1827 #: build/C/man3/rpc.3:1083
1829 "Used for describing RPC reply messages. This routine is useful for users "
1830 "who wish to generate RPC style messages without using the RPC package."
1834 #: build/C/man3/rpc.3:1086
1836 msgid "B<void xprt_register(SVCXPRT *>I<xprt>B<);>\n"
1840 #: build/C/man3/rpc.3:1093
1842 "After RPC service transport handles are created, they should register "
1843 "themselves with the RPC service package. This routine modifies the global "
1844 "variable I<svc_fds>. Service implementors usually do not need this routine."
1848 #: build/C/man3/rpc.3:1096
1850 msgid "B<void xprt_unregister(SVCXPRT *>I<xprt>B<);>\n"
1854 #: build/C/man3/rpc.3:1103
1856 "Before an RPC service transport handle is destroyed, it should unregister "
1857 "itself with the RPC service package. This routine modifies the global "
1858 "variable I<svc_fds>. Service implementors usually do not need this routine."
1861 #. We don't have an rpc_secure.3 page in the set at the moment -- MTK, 19 Sep 05
1862 #. .BR rpc_secure (3),
1864 #: build/C/man3/rpc.3:1107
1869 #: build/C/man3/rpc.3:1109 build/C/man3/xdr.3:546
1870 msgid "The following manuals:"
1874 #: build/C/man3/rpc.3:1111
1875 msgid "Remote Procedure Calls: Protocol Specification"
1879 #: build/C/man3/rpc.3:1113
1880 msgid "Remote Procedure Call Programming Guide"
1884 #: build/C/man3/rpc.3:1115
1885 msgid "rpcgen Programming Guide"
1889 #: build/C/man3/rpc.3:1121
1891 "I<RPC: Remote Procedure Call Protocol Specification>, RFC\\ 1050, Sun "
1892 "Microsystems, Inc., USC-ISI."
1896 #: build/C/man5/rpc.5:8
1902 #: build/C/man5/rpc.5:11
1903 msgid "rpc - RPC program number data base"
1907 #: build/C/man5/rpc.5:13
1912 #: build/C/man5/rpc.5:19
1914 "The I<rpc> file contains user readable names that can be used in place of "
1915 "RPC program numbers. Each line has the following information:"
1919 #: build/C/man5/rpc.5:21
1920 msgid "name of server for the RPC program"
1924 #: build/C/man5/rpc.5:25
1925 msgid "RPC program number"
1929 #: build/C/man5/rpc.5:29
1934 #: build/C/man5/rpc.5:35
1936 "Items are separated by any number of blanks and/or tab characters. A "
1937 "\\(aq#\\(aq indicates the beginning of a comment; characters from the "
1938 "\\(aq#\\(aq to the end of the line are not interpreted by routines which "
1943 #: build/C/man5/rpc.5:38
1945 "Here is an example of the I</etc/rpc> file from the Sun RPC Source "
1950 #: build/C/man5/rpc.5:73
1954 "# rpc 88/08/01 4.0 RPCSRC; from 1.12 88/02/07 SMI\n"
1956 "portmapper 100000 portmap sunrpc\n"
1957 "rstatd 100001 rstat rstat_svc rup perfmeter\n"
1958 "rusersd 100002 rusers\n"
1959 "nfs 100003 nfsprog\n"
1960 "ypserv 100004 ypprog\n"
1961 "mountd 100005 mount showmount\n"
1963 "walld 100008 rwall shutdown\n"
1964 "yppasswdd 100009 yppasswd\n"
1965 "etherstatd 100010 etherstat\n"
1966 "rquotad 100011 rquotaprog quota rquota\n"
1967 "sprayd 100012 spray\n"
1968 "3270_mapper 100013\n"
1969 "rje_mapper 100014\n"
1970 "selection_svc 100015 selnsvc\n"
1971 "database_svc 100016\n"
1980 "bootparam 100026\n"
1981 "ypupdated 100028 ypupdate\n"
1982 "keyserv 100029 keyserver\n"
1989 #: build/C/man5/rpc.5:80
1990 msgid "RPC program number data base"
1994 #: build/C/man5/rpc.5:82
1995 msgid "B<getrpcent>(3)"
1999 #: build/C/man3/rtime.3:12
2005 #: build/C/man3/rtime.3:12
2011 #: build/C/man3/rtime.3:15
2012 msgid "rtime - get time from a remote machine"
2016 #: build/C/man3/rtime.3:18
2018 msgid "B<#include E<lt>rpc/des_crypt.hE<gt>>\n"
2022 #: build/C/man3/rtime.3:21
2025 "B<int rtime(struct sockaddr_in *>I<addrp>B<, struct rpc_timeval "
2027 "B< struct rpc_timeval *>I<timeout>B<);>\n"
2031 #: build/C/man3/rtime.3:25
2033 "This function uses the Time Server Protocol as described in RFC\\ 868 to "
2034 "obtain the time from a remote machine."
2038 #: build/C/man3/rtime.3:31
2040 "The Time Server Protocol gives the time in seconds since 00:00:00 UTC, 1 Jan "
2041 "1900, and this function subtracts the appropriate constant in order to "
2042 "convert the result to seconds since the Epoch, 1970-01-01 00:00:00 +0000 "
2047 #: build/C/man3/rtime.3:36
2049 "When I<timeout> is non-NULL, the udp/time socket (port 37) is used. "
2050 "Otherwise, the tcp/time socket (port 37) is used."
2054 #: build/C/man3/rtime.3:42
2056 "On success, 0 is returned, and the obtained 32-bit time value is stored in "
2057 "I<timep-E<gt>tv_sec>. In case of error -1 is returned, and I<errno> is set "
2062 #: build/C/man3/rtime.3:51
2064 "All errors for underlying functions (B<sendto>(2), B<poll>(2), "
2065 "B<recvfrom>(2), B<connect>(2), B<read>(2)) can occur. Moreover:"
2069 #: build/C/man3/rtime.3:51
2075 #: build/C/man3/rtime.3:54
2076 msgid "The number of returned bytes is not 4."
2080 #: build/C/man3/rtime.3:54
2082 msgid "B<ETIMEDOUT>"
2086 #: build/C/man3/rtime.3:57
2087 msgid "The waiting time as defined in timeout has expired."
2091 #: build/C/man3/rtime.3:57
2097 #: build/C/man3/rtime.3:58
2099 msgid "Multithreading (see pthreads(7))"
2103 #: build/C/man3/rtime.3:62
2104 msgid "The B<rtime>() function is thread-safe."
2108 #: build/C/man3/rtime.3:64
2109 msgid "Only IPv4 is supported."
2113 #: build/C/man3/rtime.3:71
2115 "Some I<in.timed> versions support only TCP. Try the example program with "
2116 "I<use_tcp> set to 1."
2120 #: build/C/man3/rtime.3:73
2121 msgid "Libc5 uses the prototype"
2125 #: build/C/man3/rtime.3:76
2127 msgid " int rtime(struct sockaddr_in *, struct timeval *, struct timeval *);\n"
2131 #: build/C/man3/rtime.3:82
2132 msgid "and requires I<E<lt>sys/time.hE<gt>> instead of I<E<lt>rpc/auth_des.hE<gt>>."
2136 #: build/C/man3/rtime.3:85
2138 "B<rtime>() in glibc 2.2.5 and earlier does not work properly on 64-bit "
2143 #: build/C/man3/rtime.3:85
2149 #: build/C/man3/rtime.3:91
2151 "This example requires that port 37 is up and open. You may check that the "
2152 "time entry within I</etc/inetd.conf> is not commented out."
2156 #: build/C/man3/rtime.3:95
2158 "The program connects to a computer called \"linux\". Using \"localhost\" "
2159 "does not work. The result is the localtime of the computer \"linux\"."
2163 #: build/C/man3/rtime.3:104
2166 "#include E<lt>stdio.hE<gt>\n"
2167 "#include E<lt>stdlib.hE<gt>\n"
2168 "#include E<lt>errno.hE<gt>\n"
2169 "#include E<lt>string.hE<gt>\n"
2170 "#include E<lt>time.hE<gt>\n"
2171 "#include E<lt>rpc/auth_des.hE<gt>\n"
2172 "#include E<lt>netdb.hE<gt>\n"
2176 #: build/C/man3/rtime.3:107
2179 "static int use_tcp = 0;\n"
2180 "static char *servername = \"linux\";\n"
2184 #: build/C/man3/rtime.3:116
2190 " struct sockaddr_in name;\n"
2191 " struct rpc_timeval time1 = {0,0};\n"
2192 " struct rpc_timeval timeout = {1,0};\n"
2193 " struct hostent *hent;\n"
2198 #: build/C/man3/rtime.3:121
2201 " memset(&name, 0, sizeof(name));\n"
2203 " hent = gethostbyname(servername);\n"
2204 " memcpy(&name.sin_addr, hent-E<gt>h_addr, hent-E<gt>h_length);\n"
2208 #: build/C/man3/rtime.3:129
2211 " ret = rtime(&name, &time1, use_tcp ? NULL : &timeout);\n"
2212 " if (ret E<lt> 0)\n"
2213 " perror(\"rtime error\");\n"
2215 " time_t t = time1.tv_sec;\n"
2216 " printf(\"%s\\en\", ctime(&t));\n"
2221 #: build/C/man3/rtime.3:132
2224 " exit(EXIT_SUCCESS);\n"
2231 #: build/C/man3/rtime.3:138
2232 msgid "B<ntpdate>(1), B<inetd>(8)"
2236 #: build/C/man3/xdr.3:11
2242 #: build/C/man3/xdr.3:11
2248 #: build/C/man3/xdr.3:14
2249 msgid "xdr - library routines for external data representation"
2253 #: build/C/man3/xdr.3:20
2255 "These routines allow C programmers to describe arbitrary data structures in "
2256 "a machine-independent fashion. Data for remote procedure calls are "
2257 "transmitted using these routines."
2261 #: build/C/man3/xdr.3:24
2263 "The prototypes below are declared in I<E<lt>rpc/xdr.hE<gt>> and make use of "
2264 "the following types:"
2268 #: build/C/man3/xdr.3:30
2270 msgid "B<typedef bool_t (*>I<xdrproc_ti>B<) (XDR *, void *,...);>\n"
2274 #: build/C/man3/xdr.3:37
2275 msgid "For the declaration of the I<XDR> type, see I<E<lt>rpc/xdr.hE<gt>>."
2279 #: build/C/man3/xdr.3:42
2282 "B<bool_t xdr_array(XDR *>I<xdrs>B<, char **>I<arrp>B<, unsigned int "
2284 "B< unsigned int >I<maxsize>B<, unsigned int >I<elsize>B<,>\n"
2285 "B< xdrproc_t >I<elproc>B<);>\n"
2289 #: build/C/man3/xdr.3:63
2291 "A filter primitive that translates between variable-length arrays and their "
2292 "corresponding external representations. The argument I<arrp> is the address "
2293 "of the pointer to the array, while I<sizep> is the address of the element "
2294 "count of the array; this element count cannot exceed I<maxsize>. The "
2295 "argument I<elsize> is the I<sizeof> each of the array's elements, and "
2296 "I<elproc> is an XDR filter that translates between the array elements' C "
2297 "form, and their external representation. This routine returns one if it "
2298 "succeeds, zero otherwise."
2302 #: build/C/man3/xdr.3:66
2304 msgid "B<bool_t xdr_bool(XDR *>I<xdrs>B<, bool_t *>I<bp>B<);>\n"
2308 #: build/C/man3/xdr.3:74
2310 "A filter primitive that translates between booleans (C integers) and their "
2311 "external representations. When encoding data, this filter produces values "
2312 "of either one or zero. This routine returns one if it succeeds, zero "
2317 #: build/C/man3/xdr.3:78
2320 "B<bool_t xdr_bytes(XDR *>I<xdrs>B<, char **>I<sp>B<, unsigned int "
2322 "B< unsigned int >I<maxsize>B<);>\n"
2326 #: build/C/man3/xdr.3:91
2328 "A filter primitive that translates between counted byte strings and their "
2329 "external representations. The argument I<sp> is the address of the string "
2330 "pointer. The length of the string is located at address I<sizep>; strings "
2331 "cannot be longer than I<maxsize>. This routine returns one if it succeeds, "
2336 #: build/C/man3/xdr.3:94
2338 msgid "B<bool_t xdr_char(XDR *>I<xdrs>B<, char *>I<cp>B<);>\n"
2342 #: build/C/man3/xdr.3:106
2344 "A filter primitive that translates between C characters and their external "
2345 "representations. This routine returns one if it succeeds, zero otherwise. "
2346 "Note: encoded characters are not packed, and occupy 4 bytes each. For "
2347 "arrays of characters, it is worthwhile to consider B<xdr_bytes>(), "
2348 "B<xdr_opaque>() or B<xdr_string>()."
2352 #: build/C/man3/xdr.3:109
2354 msgid "B<void xdr_destroy(XDR *>I<xdrs>B<);>\n"
2358 #: build/C/man3/xdr.3:120
2360 "A macro that invokes the destroy routine associated with the XDR stream, "
2361 "I<xdrs>. Destruction usually involves freeing private data structures "
2362 "associated with the stream. Using I<xdrs> after invoking B<xdr_destroy>() "
2367 #: build/C/man3/xdr.3:123
2369 msgid "B<bool_t xdr_double(XDR *>I<xdrs>B<, double *>I<dp>B<);>\n"
2373 #: build/C/man3/xdr.3:129
2375 "A filter primitive that translates between C I<double> precision numbers and "
2376 "their external representations. This routine returns one if it succeeds, "
2381 #: build/C/man3/xdr.3:132
2383 msgid "B<bool_t xdr_enum(XDR *>I<xdrs>B<, enum_t *>I<ep>B<);>\n"
2387 #: build/C/man3/xdr.3:138
2389 "A filter primitive that translates between C I<enum>s (actually integers) "
2390 "and their external representations. This routine returns one if it "
2391 "succeeds, zero otherwise."
2395 #: build/C/man3/xdr.3:141
2397 msgid "B<bool_t xdr_float(XDR *>I<xdrs>B<, float *>I<fp>B<);>\n"
2401 #: build/C/man3/xdr.3:147
2403 "A filter primitive that translates between C I<float>s and their external "
2404 "representations. This routine returns one if it succeeds, zero otherwise."
2408 #: build/C/man3/xdr.3:150
2410 msgid "B<void xdr_free(xdrproc_t >I<proc>B<, char *>I<objp>B<);>\n"
2414 #: build/C/man3/xdr.3:160
2416 "Generic freeing routine. The first argument is the XDR routine for the "
2417 "object being freed. The second argument is a pointer to the object itself. "
2418 "Note: the pointer passed to this routine is I<not> freed, but what it points "
2419 "to I<is> freed (recursively)."
2423 #: build/C/man3/xdr.3:163
2425 msgid "B<unsigned int xdr_getpos(XDR *>I<xdrs>B<);>\n"
2429 #: build/C/man3/xdr.3:173
2431 "A macro that invokes the get-position routine associated with the XDR "
2432 "stream, I<xdrs>. The routine returns an unsigned integer, which indicates "
2433 "the position of the XDR byte stream. A desirable feature of XDR streams is "
2434 "that simple arithmetic works with this number, although the XDR stream "
2435 "instances need not guarantee this."
2439 #: build/C/man3/xdr.3:176
2441 msgid "B<long *xdr_inline(XDR *>I<xdrs>B<, int >I<len>B<);>\n"
2445 #: build/C/man3/xdr.3:186
2447 "A macro that invokes the inline routine associated with the XDR stream, "
2448 "I<xdrs>. The routine returns a pointer to a contiguous piece of the "
2449 "stream's buffer; I<len> is the byte length of the desired buffer. Note: "
2450 "pointer is cast to I<long\\ *>."
2454 #: build/C/man3/xdr.3:193
2456 "Warning: B<xdr_inline>() may return NULL (0) if it cannot allocate a "
2457 "contiguous piece of a buffer. Therefore the behavior may vary among stream "
2458 "instances; it exists for the sake of efficiency."
2462 #: build/C/man3/xdr.3:196
2464 msgid "B<bool_t xdr_int(XDR *>I<xdrs>B<, int *>I<ip>B<);>\n"
2468 #: build/C/man3/xdr.3:201
2470 "A filter primitive that translates between C integers and their external "
2471 "representations. This routine returns one if it succeeds, zero otherwise."
2475 #: build/C/man3/xdr.3:204
2477 msgid "B<bool_t xdr_long(XDR *>I<xdrs>B<, long *>I<lp>B<);>\n"
2481 #: build/C/man3/xdr.3:210
2483 "A filter primitive that translates between C I<long> integers and their "
2484 "external representations. This routine returns one if it succeeds, zero "
2489 #: build/C/man3/xdr.3:214
2492 "B<void xdrmem_create(XDR *>I<xdrs>B<, char *>I<addr>B<, unsigned int "
2494 "B< enum xdr_op >I<op>B<);>\n"
2498 #: build/C/man3/xdr.3:231
2500 "This routine initializes the XDR stream object pointed to by I<xdrs>. The "
2501 "stream's data is written to, or read from, a chunk of memory at location "
2502 "I<addr> whose length is no more than I<size> bytes long. The I<op> "
2503 "determines the direction of the XDR stream (either B<XDR_ENCODE>, "
2504 "B<XDR_DECODE>, or B<XDR_FREE>)."
2508 #: build/C/man3/xdr.3:234
2511 "B<bool_t xdr_opaque(XDR *>I<xdrs>B<, char *>I<cp>B<, unsigned int "
2516 #: build/C/man3/xdr.3:244
2518 "A filter primitive that translates between fixed size opaque data and its "
2519 "external representation. The argument I<cp> is the address of the opaque "
2520 "object, and I<cnt> is its size in bytes. This routine returns one if it "
2521 "succeeds, zero otherwise."
2525 #: build/C/man3/xdr.3:248
2528 "B<bool_t xdr_pointer(XDR *>I<xdrs>B<, char **>I<objpp>B<,>\n"
2529 "B< unsigned int >I<objsize>B<, xdrproc_t >I<xdrobj>B<);>\n"
2533 #: build/C/man3/xdr.3:260
2535 "Like B<xdr_reference>() except that it serializes null pointers, whereas "
2536 "B<xdr_reference>() does not. Thus, B<xdr_pointer>() can represent "
2537 "recursive data structures, such as binary trees or linked lists."
2541 #: build/C/man3/xdr.3:266
2544 "B<void xdrrec_create(XDR *>I<xdrs>B<, unsigned int >I<sendsize>B<,>\n"
2545 "B< unsigned int >I<recvsize>B<, char *>I<handle>B<,>\n"
2546 "B< int (*>I<readit>B<) (char *, char *, int),>\n"
2547 "B< int (*>I<writeit>B<) (char *, char *, int));>\n"
2551 #: build/C/man3/xdr.3:293
2553 "This routine initializes the XDR stream object pointed to by I<xdrs>. The "
2554 "stream's data is written to a buffer of size I<sendsize>; a value of zero "
2555 "indicates the system should use a suitable default. The stream's data is "
2556 "read from a buffer of size I<recvsize>; it too can be set to a suitable "
2557 "default by passing a zero value. When a stream's output buffer is full, "
2558 "I<writeit> is called. Similarly, when a stream's input buffer is empty, "
2559 "I<readit> is called. The behavior of these two routines is similar to the "
2560 "system calls B<read>(2) and B<write>(2), except that I<handle> is passed to "
2561 "the former routines as the first argument. Note: the XDR stream's I<op> "
2562 "field must be set by the caller."
2566 #: build/C/man3/xdr.3:297
2568 "Warning: this XDR stream implements an intermediate record stream. "
2569 "Therefore there are additional bytes in the stream to provide record "
2570 "boundary information."
2574 #: build/C/man3/xdr.3:300
2576 msgid "B<bool_t xdrrec_endofrecord(XDR *>I<xdrs>B<, int >I<sendnow>B<);>\n"
2580 #: build/C/man3/xdr.3:309
2582 "This routine can be invoked only on streams created by B<xdrrec_create>(). "
2583 "The data in the output buffer is marked as a completed record, and the "
2584 "output buffer is optionally written out if I<sendnow> is nonzero. This "
2585 "routine returns one if it succeeds, zero otherwise."
2589 #: build/C/man3/xdr.3:312
2591 msgid "B<bool_t xdrrec_eof(XDR *>I<xdrs>B<);>\n"
2595 #: build/C/man3/xdr.3:319
2597 "This routine can be invoked only on streams created by B<xdrrec_create>(). "
2598 "After consuming the rest of the current record in the stream, this routine "
2599 "returns one if the stream has no more input, zero otherwise."
2603 #: build/C/man3/xdr.3:322
2605 msgid "B<bool_t xdrrec_skiprecord(XDR *>I<xdrs>B<);>\n"
2609 #: build/C/man3/xdr.3:330
2611 "This routine can be invoked only on streams created by B<xdrrec_create>(). "
2612 "It tells the XDR implementation that the rest of the current record in the "
2613 "stream's input buffer should be discarded. This routine returns one if it "
2614 "succeeds, zero otherwise."
2618 #: build/C/man3/xdr.3:334
2621 "B<bool_t xdr_reference(XDR *>I<xdrs>B<, char **>I<pp>B<, unsigned int "
2623 "B< xdrproc_t >I<proc>B<);>\n"
2627 #: build/C/man3/xdr.3:350
2629 "A primitive that provides pointer chasing within structures. The argument "
2630 "I<pp> is the address of the pointer; I<size> is the I<sizeof> the structure "
2631 "that I<*pp> points to; and I<proc> is an XDR procedure that filters the "
2632 "structure between its C form and its external representation. This routine "
2633 "returns one if it succeeds, zero otherwise."
2637 #: build/C/man3/xdr.3:355
2639 "Warning: this routine does not understand null pointers. Use "
2640 "B<xdr_pointer>() instead."
2644 #: build/C/man3/xdr.3:358
2646 msgid "B<xdr_setpos(XDR *>I<xdrs>B<, unsigned int >I<pos>B<);>\n"
2650 #: build/C/man3/xdr.3:369
2652 "A macro that invokes the set position routine associated with the XDR stream "
2653 "I<xdrs>. The argument I<pos> is a position value obtained from "
2654 "B<xdr_getpos>(). This routine returns one if the XDR stream could be "
2655 "repositioned, and zero otherwise."
2659 #: build/C/man3/xdr.3:373
2661 "Warning: it is difficult to reposition some types of XDR streams, so this "
2662 "routine may fail with one type of stream and succeed with another."
2666 #: build/C/man3/xdr.3:376
2668 msgid "B<bool_t xdr_short(XDR *>I<xdrs>B<, short *>I<sp>B<);>\n"
2672 #: build/C/man3/xdr.3:382
2674 "A filter primitive that translates between C I<short> integers and their "
2675 "external representations. This routine returns one if it succeeds, zero "
2680 #: build/C/man3/xdr.3:385
2683 "B<void xdrstdio_create(XDR *>I<xdrs>B<, FILE *>I<file>B<, enum xdr_op "
2688 #: build/C/man3/xdr.3:400
2690 "This routine initializes the XDR stream object pointed to by I<xdrs>. The "
2691 "XDR stream data is written to, or read from, the I<stdio> stream I<file>. "
2692 "The argument I<op> determines the direction of the XDR stream (either "
2693 "B<XDR_ENCODE>, B<XDR_DECODE>, or B<XDR_FREE>)."
2697 #: build/C/man3/xdr.3:407
2699 "Warning: the destroy routine associated with such XDR streams calls "
2700 "B<fflush>(3) on the I<file> stream, but never B<fclose>(3)."
2704 #: build/C/man3/xdr.3:410
2707 "B<bool_t xdr_string(XDR *>I<xdrs>B<, char **>I<sp>B<, unsigned int "
2708 ">I<maxsize>B<);>\n"
2712 #: build/C/man3/xdr.3:420
2714 "A filter primitive that translates between C strings and their corresponding "
2715 "external representations. Strings cannot be longer than I<maxsize>. Note: "
2716 "I<sp> is the address of the string's pointer. This routine returns one if "
2717 "it succeeds, zero otherwise."
2721 #: build/C/man3/xdr.3:423
2723 msgid "B<bool_t xdr_u_char(XDR *>I<xdrs>B<, unsigned char *>I<ucp>B<);>\n"
2727 #: build/C/man3/xdr.3:429
2729 "A filter primitive that translates between I<unsigned> C characters and "
2730 "their external representations. This routine returns one if it succeeds, "
2735 #: build/C/man3/xdr.3:432
2737 msgid "B<bool_t xdr_u_int(XDR *>I<xdrs>B<, unsigned *>I<up>B<);>\n"
2741 #: build/C/man3/xdr.3:438
2743 "A filter primitive that translates between C I<unsigned> integers and their "
2744 "external representations. This routine returns one if it succeeds, zero "
2749 #: build/C/man3/xdr.3:441
2751 msgid "B<bool_t xdr_u_long(XDR *>I<xdrs>B<, unsigned long *>I<ulp>B<);>\n"
2755 #: build/C/man3/xdr.3:447
2757 "A filter primitive that translates between C I<unsigned long> integers and "
2758 "their external representations. This routine returns one if it succeeds, "
2763 #: build/C/man3/xdr.3:450
2765 msgid "B<bool_t xdr_u_short(XDR *>I<xdrs>B<, unsigned short *>I<usp>B<);>\n"
2769 #: build/C/man3/xdr.3:456
2771 "A filter primitive that translates between C I<unsigned short> integers and "
2772 "their external representations. This routine returns one if it succeeds, "
2777 #: build/C/man3/xdr.3:461
2780 "B<bool_t xdr_union(XDR *>I<xdrs>B<, int *>I<dscmp>B<, char *>I<unp>B<,>\n"
2781 "B< struct xdr_discrim *>I<choices>B<,>\n"
2782 "B< xdrproc_t >I<defaultarm>B<); /* may equal NULL */>\n"
2786 #: build/C/man3/xdr.3:495
2788 "A filter primitive that translates between a discriminated C I<union> and "
2789 "its corresponding external representation. It first translates the "
2790 "discriminant of the union located at I<dscmp>. This discriminant is always "
2791 "an I<enum_t>. Next the union located at I<unp> is translated. The argument "
2792 "I<choices> is a pointer to an array of B<xdr_discrim>() structures. Each "
2793 "structure contains an ordered pair of [I<value>,I<proc>]. If the union's "
2794 "discriminant is equal to the associated I<value>, then the I<proc> is called "
2795 "to translate the union. The end of the B<xdr_discrim>() structure array is "
2796 "denoted by a routine of value NULL. If the discriminant is not found in the "
2797 "I<choices> array, then the I<defaultarm> procedure is called (if it is not "
2798 "NULL). Returns one if it succeeds, zero otherwise."
2802 #: build/C/man3/xdr.3:499
2805 "B<bool_t xdr_vector(XDR *>I<xdrs>B<, char *>I<arrp>B<, unsigned int "
2807 "B< unsigned int >I<elsize>B<, xdrproc_t >I<elproc>B<);>\n"
2811 #: build/C/man3/xdr.3:518
2813 "A filter primitive that translates between fixed-length arrays and their "
2814 "corresponding external representations. The argument I<arrp> is the address "
2815 "of the pointer to the array, while I<size> is the element count of the "
2816 "array. The argument I<elsize> is the I<sizeof> each of the array's "
2817 "elements, and I<elproc> is an XDR filter that translates between the array "
2818 "elements' C form, and their external representation. This routine returns "
2819 "one if it succeeds, zero otherwise."
2823 #: build/C/man3/xdr.3:521
2825 msgid "B<bool_t xdr_void(void);>\n"
2829 #: build/C/man3/xdr.3:526
2831 "This routine always returns one. It may be passed to RPC routines that "
2832 "require a function argument, where nothing is to be done."
2836 #: build/C/man3/xdr.3:529
2838 msgid "B<bool_t xdr_wrapstring(XDR *>I<xdrs>B<, char **>I<sp>B<);>\n"
2842 #: build/C/man3/xdr.3:542
2844 "A primitive that calls B<xdr_string(xdrs, sp,MAXUN.UNSIGNED );> where "
2845 "B<MAXUN.UNSIGNED> is the maximum value of an unsigned integer. "
2846 "B<xdr_wrapstring>() is handy because the RPC package passes a maximum of "
2847 "two XDR routines as arguments, and B<xdr_string>(), one of the most "
2848 "frequently used primitives, requires three. Returns one if it succeeds, "
2853 #: build/C/man3/xdr.3:544
2858 #: build/C/man3/xdr.3:548
2859 msgid "eXternal Data Representation Standard: Protocol Specification"
2863 #: build/C/man3/xdr.3:550
2864 msgid "eXternal Data Representation: Sun Technical Notes"
2868 #: build/C/man3/xdr.3:554
2870 "I<XDR: External Data Representation Standard>, RFC\\ 1014, Sun Microsystems, "