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: 2015-02-04 23:33+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 build/C/man3/getrpcport.3:8 build/C/man3/key_setsecret.3:9 build/C/man3/rtime.3:12
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(const 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:18 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:38
218 msgid "CONFORMING TO"
222 #: build/C/man3/getrpcent.3:105 build/C/man3/getrpcport.3:41
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:41 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:49 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.79 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:11
432 msgid "getrpcport - get RPC port number"
436 #: build/C/man3/getrpcport.3:14
438 msgid "B<#include E<lt>rpc/rpc.hE<gt>>\n"
442 #: build/C/man3/getrpcport.3:17
445 "B<int getrpcport(const char *>I<host>B<, unsigned long >I<prognum>B<, "
446 "unsigned long >I<versnum>B<, unsigned >I<proto>B<);>\n"
450 #: build/C/man3/getrpcport.3:38
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:13
470 "key_decryptsession, key_encryptsession, key_setsecret, key_gendes, "
471 "key_secretkey_is_set - interfaces to rpc keyserver daemon"
475 #: build/C/man3/key_setsecret.3:15
476 msgid "B<#include E<lt>rpc/rpc.hE<gt>>"
480 #: build/C/man3/key_setsecret.3:18
482 "B<int key_decryptsession(char *>I<remotename>B<,> B<des_block "
487 #: build/C/man3/key_setsecret.3:21
489 "B<int key_encryptsession(char *>I<remotename>B<,> B<des_block "
494 #: build/C/man3/key_setsecret.3:23
495 msgid "B<int key_gendes(des_block *>I<deskey>B<);>"
499 #: build/C/man3/key_setsecret.3:25
500 msgid "B<int key_setsecret(char *>I<key>B<);>"
504 #: build/C/man3/key_setsecret.3:27
505 msgid "B<int key_secretkey_is_set(void);>"
509 #: build/C/man3/key_setsecret.3:32
511 "The functions here are used within the RPC's secure authentication mechanism "
512 "(AUTH_DES). There should be no need for user programs to use this "
517 #: build/C/man3/key_setsecret.3:39
519 "The function B<key_decryptsession>() uses the (remote) server netname and "
520 "takes the DES key for decrypting. It uses the public key of the server and "
521 "the secret key associated with the effective UID of the calling process."
525 #: build/C/man3/key_setsecret.3:46
527 "The function B<key_encryptsession>() is the inverse of "
528 "B<key_decryptsession>(). It encrypts the DES keys with the public key of "
529 "the server and the secret key associated with the effective UID of the "
534 #: build/C/man3/key_setsecret.3:50
536 "The function B<key_gendes>() is used to ask the keyserver for a secure "
541 #: build/C/man3/key_setsecret.3:54
543 "The function B<key_setsecret>() is used to set the key for the effective "
544 "UID of the calling process."
548 #: build/C/man3/key_setsecret.3:59
550 "The function B<key_secretkey_is_set>() can be used to determine whether a "
551 "key has been set for the effective UID of the calling process."
555 #: build/C/man3/key_setsecret.3:61
556 msgid "These functions return 1 on success and 0 on failure."
560 #: build/C/man3/key_setsecret.3:61 build/C/man3/rtime.3:62
566 #: build/C/man3/key_setsecret.3:66
568 "Note that we talk about two types of encryption here. One is asymmetric "
569 "using a public and secret key. The other is symmetric, the 64-bit DES."
573 #: build/C/man3/key_setsecret.3:68
574 msgid "These routines were part of the Linux/Doors-project, abandoned by now."
578 #: build/C/man3/key_setsecret.3:70
583 #: build/C/man3/rpc.3:11 build/C/man5/rpc.5:8
589 #: build/C/man3/rpc.3:11
595 #: build/C/man3/rpc.3:14
596 msgid "rpc - library routines for remote procedure calls"
600 #: build/C/man3/rpc.3:14 build/C/man3/xdr.3:14
602 msgid "SYNOPSIS AND DESCRIPTION"
606 #. We don't have an rpc_secure.3 page at the moment -- MTK, 19 Sep 05
607 #. Routines that are used for Secure RPC (DES authentication) are described in
608 #. .BR rpc_secure (3).
609 #. Secure RPC can be used only if DES encryption is available.
611 #: build/C/man3/rpc.3:26
613 "These routines allow C programs to make procedure calls on other machines "
614 "across the network. First, the client calls a procedure to send a data "
615 "packet to the server. Upon receipt of the packet, the server calls a "
616 "dispatch routine to perform the requested service, and then sends back a "
617 "reply. Finally, the procedure call returns to the client."
621 #: build/C/man3/rpc.3:29
623 "To take use of these routines, include the header file "
624 "I<E<lt>rpc/rpc.hE<gt>>."
628 #: build/C/man3/rpc.3:31
629 msgid "The prototypes below make use of the following types:"
633 #: build/C/man3/rpc.3:35 build/C/man3/xdr.3:28
635 msgid "B<typedef int >I<bool_t>B<;>\n"
639 #: build/C/man3/rpc.3:37
641 msgid "B<typedef bool_t (*>I<xdrproc_t>B<) (XDR *, void *, ...);>\n"
645 #: build/C/man3/rpc.3:40
648 "B<typedef bool_t (*>I<resultproc_t>B<) (caddr_t >I<resp>B<,>\n"
649 "B< struct sockaddr_in *>I<raddr>B<);>\n"
653 #: build/C/man3/rpc.3:50
655 "See the header files for the declarations of the I<AUTH>, I<CLIENT>, "
656 "I<SVCXPRT>, and I<XDR> types."
660 #: build/C/man3/rpc.3:53
662 msgid "B<void auth_destroy(AUTH *>I<auth>B<);>\n"
666 #: build/C/man3/rpc.3:62
668 "A macro that destroys the authentication information associated with "
669 "I<auth>. Destruction usually involves deallocation of private data "
670 "structures. The use of I<auth> is undefined after calling "
675 #: build/C/man3/rpc.3:65
677 msgid "B<AUTH *authnone_create(void);>\n"
681 #: build/C/man3/rpc.3:71
683 "Create and return an RPC authentication handle that passes nonusable "
684 "authentication information with each remote procedure call. This is the "
685 "default authentication used by RPC."
689 #: build/C/man3/rpc.3:75
692 "B<AUTH *authunix_create(char *>I<host>B<, int >I<uid>B<, int >I<gid>B<,>\n"
693 "B< int >I<len>B<, int *>I<aup_gids>B<);>\n"
697 #: build/C/man3/rpc.3:91
699 "Create and return an RPC authentication handle that contains authentication "
700 "information. The parameter I<host> is the name of the machine on which the "
701 "information was created; I<uid> is the user's user ID; I<gid> is the user's "
702 "current group ID; I<len> and I<aup_gids> refer to a counted array of groups "
703 "to which the user belongs. It is easy to impersonate a user."
707 #: build/C/man3/rpc.3:94
709 msgid "B<AUTH *authunix_create_default(void);>\n"
713 #: build/C/man3/rpc.3:99
714 msgid "Calls B<authunix_create>() with the appropriate parameters."
718 #: build/C/man3/rpc.3:105
721 "B<int callrpc(char *>I<host>B<, unsigned long >I<prognum>B<,>\n"
722 "B< unsigned long >I<versnum>B<, unsigned long >I<procnum>B<,>\n"
723 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
724 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<);>\n"
728 #: build/C/man3/rpc.3:129
730 "Call the remote procedure associated with I<prognum>, I<versnum>, and "
731 "I<procnum> on the machine, I<host>. The parameter I<in> is the address of "
732 "the procedure's argument(s), and I<out> is the address of where to place the "
733 "result(s); I<inproc> is used to encode the procedure's parameters, and "
734 "I<outproc> is used to decode the procedure's results. This routine returns "
735 "zero if it succeeds, or the value of B<enum clnt_stat> cast to an integer if "
736 "it fails. The routine B<clnt_perrno>() is handy for translating failure "
737 "statuses into messages."
741 #: build/C/man3/rpc.3:135
743 "Warning: calling remote procedures with this routine uses UDP/IP as a "
744 "transport; see B<clntudp_create>() for restrictions. You do not have "
745 "control of timeouts or authentication using this routine."
749 #: build/C/man3/rpc.3:142
752 "B<enum clnt_stat clnt_broadcast(unsigned long >I<prognum>B<,>\n"
753 "B< unsigned long >I<versnum>B<, unsigned long "
755 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
756 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<,>\n"
757 "B< resultproc_t >I<eachresult>B<);>\n"
761 #: build/C/man3/rpc.3:151
763 "Like B<callrpc>(), except the call message is broadcast to all locally "
764 "connected broadcast nets. Each time it receives a response, this routine "
765 "calls B<eachresult>(), whose form is:"
769 #: build/C/man3/rpc.3:155
771 msgid "B<eachresult(char *>I<out>B<, struct sockaddr_in *>I<addr>B<);>\n"
775 #: build/C/man3/rpc.3:172
777 "where I<out> is the same as I<out> passed to B<clnt_broadcast>(), except "
778 "that the remote procedure's output is decoded there; I<addr> points to the "
779 "address of the machine that sent the results. If B<eachresult>() returns "
780 "zero, B<clnt_broadcast>() waits for more replies; otherwise it returns with "
781 "appropriate status."
785 #: build/C/man3/rpc.3:176
787 "Warning: broadcast sockets are limited in size to the maximum transfer unit "
788 "of the data link. For ethernet, this value is 1500 bytes."
792 #: build/C/man3/rpc.3:182
795 "B<enum clnt_stat clnt_call(CLIENT *>I<clnt>B<, unsigned long "
797 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
798 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<,>\n"
799 "B< struct timeval >I<tout>B<);>\n"
803 #: build/C/man3/rpc.3:201
805 "A macro that calls the remote procedure I<procnum> associated with the "
806 "client handle, I<clnt>, which is obtained with an RPC client creation "
807 "routine such as B<clnt_create>(). The parameter I<in> is the address of the "
808 "procedure's argument(s), and I<out> is the address of where to place the "
809 "result(s); I<inproc> is used to encode the procedure's parameters, and "
810 "I<outproc> is used to decode the procedure's results; I<tout> is the time "
811 "allowed for results to come back."
815 #: build/C/man3/rpc.3:204
817 msgid "B<clnt_destroy(CLIENT *>I<clnt>B<);>\n"
821 #: build/C/man3/rpc.3:217
823 "A macro that destroys the client's RPC handle. Destruction usually involves "
824 "deallocation of private data structures, including I<clnt> itself. Use of "
825 "I<clnt> is undefined after calling B<clnt_destroy>(). If the RPC library "
826 "opened the associated socket, it will close it also. Otherwise, the socket "
831 #: build/C/man3/rpc.3:221
834 "B<CLIENT *clnt_create(char *>I<host>B<, unsigned long >I<prog>B<,>\n"
835 "B< unsigned long >I<vers>B<, char *>I<proto>B<);>\n"
839 #: build/C/man3/rpc.3:232
841 "Generic client creation routine. I<host> identifies the name of the remote "
842 "host where the server is located. I<proto> indicates which kind of "
843 "transport protocol to use. The currently supported values for this field "
844 "are \\(lqudp\\(rq and \\(lqtcp\\(rq. Default timeouts are set, but can be "
845 "modified using B<clnt_control>()."
849 #: build/C/man3/rpc.3:237
851 "Warning: Using UDP has its shortcomings. Since UDP-based RPC messages can "
852 "hold only up to 8 Kbytes of encoded data, this transport cannot be used for "
853 "procedures that take large arguments or return huge results."
857 #: build/C/man3/rpc.3:240
859 msgid "B<bool_t clnt_control(CLIENT *>I<cl>B<, int >I<req>B<, char *>I<info>B<);>\n"
863 #: build/C/man3/rpc.3:251
865 "A macro used to change or retrieve various information about a client "
866 "object. I<req> indicates the type of operation, and I<info> is a pointer to "
867 "the information. For both UDP and TCP, the supported values of I<req> and "
868 "their argument types and what they do are:"
872 #: build/C/man3/rpc.3:256
875 "B<CLSET_TIMEOUT> I<struct timeval> // set total timeout\n"
876 "B<CLGET_TIMEOUT> I<struct timeval> // get total timeout\n"
880 #: build/C/man3/rpc.3:264
882 "Note: if you set the timeout using B<clnt_control>(), the timeout parameter "
883 "passed to B<clnt_call>() will be ignored in all future calls."
887 #: build/C/man3/rpc.3:268
889 msgid "B<CLGET_SERVER_ADDR> I<struct sockaddr_in > // get server's address\n"
893 #: build/C/man3/rpc.3:272
894 msgid "The following operations are valid for UDP only:"
898 #: build/C/man3/rpc.3:277
901 "B<CLSET_RETRY_TIMEOUT> I<struct timeval> // set the retry timeout\n"
902 "B<CLGET_RETRY_TIMEOUT> I<struct timeval> // get the retry timeout\n"
906 #: build/C/man3/rpc.3:283
908 "The retry timeout is the time that \"UDP RPC\" waits for the server to reply "
909 "before retransmitting the request."
913 #: build/C/man3/rpc.3:286
916 "B<clnt_freeres(CLIENT * >I<clnt>B<, xdrproc_t >I<outproc>B<, char "
921 #: build/C/man3/rpc.3:297
923 "A macro that frees any data allocated by the RPC/XDR system when it decoded "
924 "the results of an RPC call. The parameter I<out> is the address of the "
925 "results, and I<outproc> is the XDR routine describing the results. This "
926 "routine returns one if the results were successfully freed, and zero "
931 #: build/C/man3/rpc.3:300
933 msgid "B<void clnt_geterr(CLIENT *>I<clnt>B<, struct rpc_err *>I<errp>B<);>\n"
937 #: build/C/man3/rpc.3:305
939 "A macro that copies the error structure out of the client handle to the "
940 "structure at address I<errp>."
944 #: build/C/man3/rpc.3:308
946 msgid "B<void clnt_pcreateerror(char *>I<s>B<);>\n"
950 #: build/C/man3/rpc.3:322
952 "Print a message to standard error indicating why a client RPC handle could "
953 "not be created. The message is prepended with string I<s> and a colon. "
954 "Used when a B<clnt_create>(), B<clntraw_create>(), B<clnttcp_create>(), or "
955 "B<clntudp_create>() call fails."
959 #: build/C/man3/rpc.3:325
961 msgid "B<void clnt_perrno(enum clnt_stat >I<stat>B<);>\n"
965 #: build/C/man3/rpc.3:332
967 "Print a message to standard error corresponding to the condition indicated "
968 "by I<stat>. Used after B<callrpc>()."
972 #: build/C/man3/rpc.3:335
974 msgid "B<clnt_perror(CLIENT *>I<clnt>B<, char *>I<s>B<);>\n"
978 #: build/C/man3/rpc.3:345
980 "Print a message to standard error indicating why an RPC call failed; I<clnt> "
981 "is the handle used to do the call. The message is prepended with string "
982 "I<s> and a colon. Used after B<clnt_call>()."
986 #: build/C/man3/rpc.3:348
988 msgid "B<char *clnt_spcreateerror(char *>I<s>B<);>\n"
992 #: build/C/man3/rpc.3:353
994 "Like B<clnt_pcreateerror>(), except that it returns a string instead of "
995 "printing to the standard error."
999 #: build/C/man3/rpc.3:355 build/C/man3/rpc.3:395
1000 msgid "Bugs: returns pointer to static data that is overwritten on each call."
1004 #: build/C/man3/rpc.3:358
1006 msgid "B<char *clnt_sperrno(enum clnt_stat >I<stat>B<);>\n"
1010 #: build/C/man3/rpc.3:365
1012 "Take the same arguments as B<clnt_perrno>(), but instead of sending a "
1013 "message to the standard error indicating why an RPC call failed, return a "
1014 "pointer to a string which contains the message. The string ends with a "
1019 #: build/C/man3/rpc.3:383
1021 "B<clnt_sperrno>() is used instead of B<clnt_perrno>() if the program does "
1022 "not have a standard error (as a program running as a server quite likely "
1023 "does not), or if the programmer does not want the message to be output with "
1024 "B<printf>(3), or if a message format different than that supported by "
1025 "B<clnt_perrno>() is to be used. Note: unlike B<clnt_sperror>() and "
1026 "B<clnt_spcreaterror>(), B<clnt_sperrno>() returns pointer to static data, "
1027 "but the result will not get overwritten on each call."
1031 #: build/C/man3/rpc.3:386
1033 msgid "B<char *clnt_sperror(CLIENT *>I<rpch>B<, char *>I<s>B<);>\n"
1037 #: build/C/man3/rpc.3:393
1039 "Like B<clnt_perror>(), except that (like B<clnt_sperrno>()) it returns a "
1040 "string instead of printing to standard error."
1044 #: build/C/man3/rpc.3:399
1047 "B<CLIENT *clntraw_create(unsigned long >I<prognum>B<, unsigned long "
1048 ">I<versnum>B<);>\n"
1052 #: build/C/man3/rpc.3:412
1054 "This routine creates a toy RPC client for the remote program I<prognum>, "
1055 "version I<versnum>. The transport used to pass messages to the service is "
1056 "actually a buffer within the process's address space, so the corresponding "
1057 "RPC server should live in the same address space; see B<svcraw_create>(). "
1058 "This allows simulation of RPC and acquisition of RPC overheads, such as "
1059 "round trip times, without any kernel interference. This routine returns "
1064 #: build/C/man3/rpc.3:418
1067 "B<CLIENT *clnttcp_create(struct sockaddr_in *>I<addr>B<,>\n"
1068 "B< unsigned long >I<prognum>B<, unsigned long "
1070 "B< int *>I<sockp>B<, unsigned int >I<sendsz>B<, unsigned int "
1074 #. The following inline font conversion is necessary for the hyphen indicator
1076 #: build/C/man3/rpc.3:448
1078 "This routine creates an RPC client for the remote program I<prognum>, "
1079 "version I<versnum>; the client uses TCP/IP as a transport. The remote "
1080 "program is located at Internet address I<*addr>. If I<addr-E<gt>sin_port> "
1081 "is zero, then it is set to the actual port that the remote program is "
1082 "listening on (the remote B<portmap> service is consulted for this "
1083 "information). The parameter I<sockp> is a socket; if it is B<RPC_ANYSOCK>, "
1084 "then this routine opens a new one and sets I<sockp>. Since TCP-based RPC "
1085 "uses buffered I/O, the user may specify the size of the send and receive "
1086 "buffers with the parameters I<sendsz> and I<recvsz>; values of zero choose "
1087 "suitable defaults. This routine returns NULL if it fails."
1091 #: build/C/man3/rpc.3:453
1094 "B<CLIENT *clntudp_create(struct sockaddr_in *>I<addr>B<,>\n"
1095 "B< unsigned long >I<prognum>B<, unsigned long "
1097 "B< struct timeval >I<wait>B<, int *>I<sockp>B<);>\n"
1101 #: build/C/man3/rpc.3:479
1103 "This routine creates an RPC client for the remote program I<prognum>, "
1104 "version I<versnum>; the client uses use UDP/IP as a transport. The remote "
1105 "program is located at Internet address I<addr>. If I<addr-E<gt>sin_port> is "
1106 "zero, then it is set to actual port that the remote program is listening on "
1107 "(the remote B<portmap> service is consulted for this information). The "
1108 "parameter I<sockp> is a socket; if it is B<RPC_ANYSOCK>, then this routine "
1109 "opens a new one and sets I<sockp>. The UDP transport resends the call "
1110 "message in intervals of I<wait> time until a response is received or until "
1111 "the call times out. The total time for the call to time out is specified by "
1116 #: build/C/man3/rpc.3:483
1118 "Warning: since UDP-based RPC messages can hold only up to 8 Kbytes of "
1119 "encoded data, this transport cannot be used for procedures that take large "
1120 "arguments or return huge results."
1124 #: build/C/man3/rpc.3:489
1127 "B<CLIENT *clntudp_bufcreate(struct sockaddr_in *>I<addr>B<,>\n"
1128 "B< unsigned long >I<prognum>B<, unsigned long >I<versnum>B<,>\n"
1129 "B< struct timeval >I<wait>B<, int *>I<sockp>B<,>\n"
1130 "B< unsigned int >I<sendsize>B<, unsigned int >I<recosize>B<);>\n"
1134 #: build/C/man3/rpc.3:515
1136 "This routine creates an RPC client for the remote program I<prognum>, on "
1137 "I<versnum>; the client uses use UDP/IP as a transport. The remote program "
1138 "is located at Internet address I<addr>. If I<addr-E<gt>sin_port> is zero, "
1139 "then it is set to actual port that the remote program is listening on (the "
1140 "remote B<portmap> service is consulted for this information). The parameter "
1141 "I<sockp> is a socket; if it is B<RPC_ANYSOCK>, then this routine opens a new "
1142 "one and sets I<sockp>. The UDP transport resends the call message in "
1143 "intervals of I<wait> time until a response is received or until the call "
1144 "times out. The total time for the call to time out is specified by "
1149 #: build/C/man3/rpc.3:518 build/C/man3/rpc.3:995
1151 "This allows the user to specify the maximum packet size for sending and "
1152 "receiving UDP-based RPC messages."
1156 #: build/C/man3/rpc.3:521
1158 msgid "B<void get_myaddress(struct sockaddr_in *>I<addr>B<);>\n"
1162 #: build/C/man3/rpc.3:529
1164 "Stuff the machine's IP address into I<*addr>, without consulting the library "
1165 "routines that deal with I</etc/hosts>. The port number is always set to "
1166 "B<htons(PMAPPORT)>."
1170 #: build/C/man3/rpc.3:532
1172 msgid "B<struct pmaplist *pmap_getmaps(struct sockaddr_in *>I<addr>B<);>\n"
1176 #: build/C/man3/rpc.3:543
1178 "A user interface to the B<portmap> service, which returns a list of the "
1179 "current RPC program-to-port mappings on the host located at IP address "
1180 "I<*addr>. This routine can return NULL. The command I<rpcinfo\\ -p> uses "
1185 #: build/C/man3/rpc.3:548
1188 "B<unsigned short pmap_getport(struct sockaddr_in *>I<addr>B<,>\n"
1189 "B< unsigned long >I<prognum>B<, unsigned long "
1191 "B< unsigned int >I<protocol>B<);>\n"
1195 #: build/C/man3/rpc.3:572
1197 "A user interface to the B<portmap> service, which returns the port number on "
1198 "which waits a service that supports program number I<prognum>, version "
1199 "I<versnum>, and speaks the transport protocol associated with I<protocol>. "
1200 "The value of I<protocol> is most likely B<IPPROTO_UDP> or B<IPPROTO_TCP>. A "
1201 "return value of zero means that the mapping does not exist or that the RPC "
1202 "system failed to contact the remote B<portmap> service. In the latter case, "
1203 "the global variable I<rpc_createerr> contains the RPC status."
1207 #: build/C/man3/rpc.3:580
1210 "B<enum clnt_stat pmap_rmtcall(struct sockaddr_in *>I<addr>B<,>\n"
1211 "B< unsigned long >I<prognum>B<, unsigned long "
1213 "B< unsigned long >I<procnum>B<,>\n"
1214 "B< xdrproc_t >I<inproc>B<, char *>I<in>B<,>\n"
1215 "B< xdrproc_t >I<outproc>B<, char *>I<out>B<,>\n"
1216 "B< struct timeval >I<tout>B<, unsigned long "
1221 #: build/C/man3/rpc.3:600
1223 "A user interface to the B<portmap> service, which instructs B<portmap> on "
1224 "the host at IP address I<*addr> to make an RPC call on your behalf to a "
1225 "procedure on that host. The parameter I<*portp> will be modified to the "
1226 "program's port number if the procedure succeeds. The definitions of other "
1227 "parameters are discussed in B<callrpc>() and B<clnt_call>(). This "
1228 "procedure should be used for a \\(lqping\\(rq and nothing else. See also "
1229 "B<clnt_broadcast>()."
1233 #: build/C/man3/rpc.3:604
1236 "B<bool_t pmap_set(unsigned long >I<prognum>B<, unsigned long "
1238 "B< unsigned int >I<protocol>B<, unsigned short "
1243 #: build/C/man3/rpc.3:624
1245 "A user interface to the B<portmap> service, which establishes a mapping "
1246 "between the triple [I<prognum>,I<versnum>,I<protocol>] and I<port> on the "
1247 "machine's B<portmap> service. The value of I<protocol> is most likely "
1248 "B<IPPROTO_UDP> or B<IPPROTO_TCP>. This routine returns one if it succeeds, "
1249 "zero otherwise. Automatically done by B<svc_register>()."
1253 #: build/C/man3/rpc.3:627
1256 "B<bool_t pmap_unset(unsigned long >I<prognum>B<, unsigned long "
1257 ">I<versnum>B<);>\n"
1261 #: build/C/man3/rpc.3:639
1263 "A user interface to the B<portmap> service, which destroys all mapping "
1264 "between the triple [I<prognum>,I<versnum>,I<*>] and B<ports> on the "
1265 "machine's B<portmap> service. This routine returns one if it succeeds, zero "
1270 #: build/C/man3/rpc.3:644
1273 "B<int registerrpc(unsigned long >I<prognum>B<, unsigned long "
1275 "B< unsigned long >I<procnum>B<, char *(*>I<procname>B<)(char "
1277 "B< xdrproc_t >I<inproc>B<, xdrproc_t >I<outproc>B<);>\n"
1281 #: build/C/man3/rpc.3:664
1283 "Register procedure I<procname> with the RPC service package. If a request "
1284 "arrives for program I<prognum>, version I<versnum>, and procedure "
1285 "I<procnum>, I<procname> is called with a pointer to its parameter(s); "
1286 "I<progname> should return a pointer to its static result(s); I<inproc> is "
1287 "used to decode the parameters while I<outproc> is used to encode the "
1288 "results. This routine returns zero if the registration succeeded, -1 "
1293 #: build/C/man3/rpc.3:669
1295 "Warning: remote procedures registered in this form are accessed using the "
1296 "UDP/IP transport; see B<svcudp_create>() for restrictions."
1300 #: build/C/man3/rpc.3:672
1302 msgid "B<struct rpc_createerr >I<rpc_createerr>B<;>\n"
1306 #: build/C/man3/rpc.3:679
1308 "A global variable whose value is set by any RPC client creation routine that "
1309 "does not succeed. Use the routine B<clnt_pcreateerror>() to print the "
1314 #: build/C/man3/rpc.3:682
1316 msgid "B<void svc_destroy(SVCXPRT *>I<xprt>B<);>\n"
1320 #: build/C/man3/rpc.3:693
1322 "A macro that destroys the RPC service transport handle, I<xprt>. "
1323 "Destruction usually involves deallocation of private data structures, "
1324 "including I<xprt> itself. Use of I<xprt> is undefined after calling this "
1329 #: build/C/man3/rpc.3:696
1331 msgid "B<fd_set >I<svc_fdset>B<;>\n"
1335 #: build/C/man3/rpc.3:710
1337 "A global variable reflecting the RPC service side's read file descriptor bit "
1338 "mask; it is suitable as a parameter to the B<select>(2) system call. This "
1339 "is of interest only if a service implementor does their own asynchronous "
1340 "event processing, instead of calling B<svc_run>(). This variable is "
1341 "read-only (do not pass its address to B<select>(2)!), yet it may change "
1342 "after calls to B<svc_getreqset>() or any creation routines."
1346 #: build/C/man3/rpc.3:713
1348 msgid "B<int >I<svc_fds>B<;>\n"
1352 #: build/C/man3/rpc.3:720
1354 "Similar to B<svc_fdset>, but limited to 32 descriptors. This interface is "
1355 "obsoleted by B<svc_fdset>."
1359 #: build/C/man3/rpc.3:723
1362 "B<svc_freeargs(SVCXPRT *>I<xprt>B<, xdrproc_t >I<inproc>B<, char "
1367 #: build/C/man3/rpc.3:730
1369 "A macro that frees any data allocated by the RPC/XDR system when it decoded "
1370 "the arguments to a service procedure using B<svc_getargs>(). This routine "
1371 "returns 1 if the results were successfully freed, and zero otherwise."
1375 #: build/C/man3/rpc.3:733
1378 "B<svc_getargs(SVCXPRT *>I<xprt>B<, xdrproc_t >I<inproc>B<, char "
1383 #: build/C/man3/rpc.3:744
1385 "A macro that decodes the arguments of an RPC request associated with the RPC "
1386 "service transport handle, I<xprt>. The parameter I<in> is the address where "
1387 "the arguments will be placed; I<inproc> is the XDR routine used to decode "
1388 "the arguments. This routine returns one if decoding succeeds, and zero "
1393 #: build/C/man3/rpc.3:747
1395 msgid "B<struct sockaddr_in *svc_getcaller(SVCXPRT *>I<xprt>B<);>\n"
1399 #: build/C/man3/rpc.3:752
1401 "The approved way of getting the network address of the caller of a procedure "
1402 "associated with the RPC service transport handle, I<xprt>."
1406 #: build/C/man3/rpc.3:755
1408 msgid "B<void svc_getreqset(fd_set *>I<rdfds>B<);>\n"
1412 #: build/C/man3/rpc.3:769
1414 "This routine is of interest only if a service implementor does not call "
1415 "B<svc_run>(), but instead implements custom asynchronous event processing. "
1416 "It is called when the B<select>(2) system call has determined that an RPC "
1417 "request has arrived on some RPC socket(s); I<rdfds> is the resultant read "
1418 "file descriptor bit mask. The routine returns when all sockets associated "
1419 "with the value of I<rdfds> have been serviced."
1423 #: build/C/man3/rpc.3:772
1425 msgid "B<void svc_getreq(int >I<rdfds>B<);>\n"
1429 #: build/C/man3/rpc.3:779
1431 "Similar to B<svc_getreqset>(), but limited to 32 descriptors. This "
1432 "interface is obsoleted by B<svc_getreqset>()."
1436 #: build/C/man3/rpc.3:785
1439 "B<bool_t svc_register(SVCXPRT *>I<xprt>B<, unsigned long >I<prognum>B<,>\n"
1440 "B< unsigned long >I<versnum>B<,>\n"
1441 "B< void (*>I<dispatch>B<)(svc_req *, SVCXPRT *),>\n"
1442 "B< unsigned long >I<protocol>B<);>\n"
1446 #: build/C/man3/rpc.3:815
1448 "Associates I<prognum> and I<versnum> with the service dispatch procedure, "
1449 "I<dispatch>. If I<protocol> is zero, the service is not registered with the "
1450 "B<portmap> service. If I<protocol> is nonzero, then a mapping of the triple "
1451 "[I<prognum>,I<versnum>,I<protocol>] to I<xprt-E<gt>xp_port> is established "
1452 "with the local B<portmap> service (generally I<protocol> is zero, "
1453 "B<IPPROTO_UDP> or B<IPPROTO_TCP>). The procedure I<dispatch> has the "
1458 #: build/C/man3/rpc.3:819
1460 msgid "dispatch(struct svc_req *request, SVCXPRT *xprt);\n"
1464 #: build/C/man3/rpc.3:825
1466 "The B<svc_register>() routine returns one if it succeeds, and zero "
1471 #: build/C/man3/rpc.3:828
1473 msgid "B<void svc_run(void);>\n"
1477 #: build/C/man3/rpc.3:838
1479 "This routine never returns. It waits for RPC requests to arrive, and calls "
1480 "the appropriate service procedure using B<svc_getreq>() when one arrives. "
1481 "This procedure is usually waiting for a B<select>(2) system call to return."
1485 #: build/C/man3/rpc.3:842
1488 "B<bool_t svc_sendreply(SVCXPRT *>I<xprt>B<, xdrproc_t >I<outproc>B<, char "
1493 #: build/C/man3/rpc.3:854
1495 "Called by an RPC service's dispatch routine to send the results of a remote "
1496 "procedure call. The parameter I<xprt> is the request's associated transport "
1497 "handle; I<outproc> is the XDR routine which is used to encode the results; "
1498 "and I<out> is the address of the results. This routine returns one if it "
1499 "succeeds, zero otherwise."
1503 #: build/C/man3/rpc.3:857
1506 "B<void svc_unregister(unsigned long >I<prognum>B<, unsigned long "
1507 ">I<versnum>B<);>\n"
1511 #: build/C/man3/rpc.3:864
1513 "Remove all mapping of the double [I<prognum>,I<versnum>] to dispatch "
1514 "routines, and of the triple [I<prognum>,I<versnum>,I<*>] to port number."
1518 #: build/C/man3/rpc.3:867
1520 msgid "B<void svcerr_auth(SVCXPRT *>I<xprt>B<, enum auth_stat >I<why>B<);>\n"
1524 #: build/C/man3/rpc.3:871
1526 "Called by a service dispatch routine that refuses to perform a remote "
1527 "procedure call due to an authentication error."
1531 #: build/C/man3/rpc.3:874
1533 msgid "B<void svcerr_decode(SVCXPRT *>I<xprt>B<);>\n"
1537 #: build/C/man3/rpc.3:880
1539 "Called by a service dispatch routine that cannot successfully decode its "
1540 "parameters. See also B<svc_getargs>()."
1544 #: build/C/man3/rpc.3:883
1546 msgid "B<void svcerr_noproc(SVCXPRT *>I<xprt>B<);>\n"
1550 #: build/C/man3/rpc.3:887
1552 "Called by a service dispatch routine that does not implement the procedure "
1553 "number that the caller requests."
1557 #: build/C/man3/rpc.3:890
1559 msgid "B<void svcerr_noprog(SVCXPRT *>I<xprt>B<);>\n"
1563 #: build/C/man3/rpc.3:894
1565 "Called when the desired program is not registered with the RPC package. "
1566 "Service implementors usually do not need this routine."
1570 #: build/C/man3/rpc.3:897
1572 msgid "B<void svcerr_progvers(SVCXPRT *>I<xprt>B<);>\n"
1576 #: build/C/man3/rpc.3:902
1578 "Called when the desired version of a program is not registered with the RPC "
1579 "package. Service implementors usually do not need this routine."
1583 #: build/C/man3/rpc.3:905
1585 msgid "B<void svcerr_systemerr(SVCXPRT *>I<xprt>B<);>\n"
1589 #: build/C/man3/rpc.3:911
1591 "Called by a service dispatch routine when it detects a system error not "
1592 "covered by any particular protocol. For example, if a service can no longer "
1593 "allocate storage, it may call this routine."
1597 #: build/C/man3/rpc.3:914
1599 msgid "B<void svcerr_weakauth(SVCXPRT *>I<xprt>B<);>\n"
1603 #: build/C/man3/rpc.3:920
1605 "Called by a service dispatch routine that refuses to perform a remote "
1606 "procedure call due to insufficient authentication parameters. The routine "
1607 "calls B<svcerr_auth(xprt, AUTH_TOOWEAK)>."
1611 #: build/C/man3/rpc.3:924
1614 "B<SVCXPRT *svcfd_create(int >I<fd>B<, unsigned int >I<sendsize>B<,>\n"
1615 "B< unsigned int >I<recvsize>B<);>\n"
1619 #: build/C/man3/rpc.3:934
1621 "Create a service on top of any open descriptor. Typically, this descriptor "
1622 "is a connected socket for a stream protocol such as TCP. I<sendsize> and "
1623 "I<recvsize> indicate sizes for the send and receive buffers. If they are "
1624 "zero, a reasonable default is chosen."
1628 #: build/C/man3/rpc.3:937
1630 msgid "B<SVCXPRT *svcraw_create(void);>\n"
1634 #: build/C/man3/rpc.3:947
1636 "This routine creates a toy RPC service transport, to which it returns a "
1637 "pointer. The transport is really a buffer within the process's address "
1638 "space, so the corresponding RPC client should live in the same address "
1639 "space; see B<clntraw_create>(). This routine allows simulation of RPC and "
1640 "acquisition of RPC overheads (such as round trip times), without any kernel "
1641 "interference. This routine returns NULL if it fails."
1645 #: build/C/man3/rpc.3:951
1648 "B<SVCXPRT *svctcp_create(int >I<sock>B<, unsigned int "
1649 ">I<send_buf_size>B<,>\n"
1650 "B< unsigned int >I<recv_buf_size>B<);>\n"
1654 #: build/C/man3/rpc.3:971
1656 "This routine creates a TCP/IP-based RPC service transport, to which it "
1657 "returns a pointer. The transport is associated with the socket I<sock>, "
1658 "which may be B<RPC_ANYSOCK>, in which case a new socket is created. If the "
1659 "socket is not bound to a local TCP port, then this routine binds it to an "
1660 "arbitrary port. Upon completion, I<xprt-E<gt>xp_sock> is the transport's "
1661 "socket descriptor, and I<xprt-E<gt>xp_port> is the transport's port number. "
1662 "This routine returns NULL if it fails. Since TCP-based RPC uses buffered "
1663 "I/O, users may specify the size of buffers; values of zero choose suitable "
1668 #: build/C/man3/rpc.3:975
1671 "B<SVCXPRT *svcudp_bufcreate(int >I<sock>B<, unsigned int >I<sendsize>B<,>\n"
1672 "B< unsigned int >I<recosize>B<);>\n"
1676 #: build/C/man3/rpc.3:992
1678 "This routine creates a UDP/IP-based RPC service transport, to which it "
1679 "returns a pointer. The transport is associated with the socket I<sock>, "
1680 "which may be B<RPC_ANYSOCK>, in which case a new socket is created. If the "
1681 "socket is not bound to a local UDP port, then this routine binds it to an "
1682 "arbitrary port. Upon completion, I<xprt-E<gt>xp_sock> is the transport's "
1683 "socket descriptor, and I<xprt-E<gt>xp_port> is the transport's port number. "
1684 "This routine returns NULL if it fails."
1688 #: build/C/man3/rpc.3:998
1690 msgid "B<SVCXPRT *svcudp_create(int >I<sock>B<);>\n"
1694 #: build/C/man3/rpc.3:1004
1696 "This call is equivalent to I<svcudp_bufcreate(sock,SZ,SZ)> for some default "
1701 #: build/C/man3/rpc.3:1007
1704 "B<bool_t xdr_accepted_reply(XDR *>I<xdrs>B<, struct accepted_reply "
1709 #: build/C/man3/rpc.3:1012
1711 "Used for encoding RPC reply messages. This routine is useful for users who "
1712 "wish to generate RPC-style messages without using the RPC package."
1716 #: build/C/man3/rpc.3:1015
1719 "B<bool_t xdr_authunix_parms(XDR *>I<xdrs>B<, struct authunix_parms "
1724 #: build/C/man3/rpc.3:1021
1726 "Used for describing UNIX credentials. This routine is useful for users who "
1727 "wish to generate these credentials without using the RPC authentication "
1732 #: build/C/man3/rpc.3:1024
1734 msgid "B<void xdr_callhdr(XDR *>I<xdrs>B<, struct rpc_msg *>I<chdr>B<);>\n"
1738 #: build/C/man3/rpc.3:1029
1740 "Used for describing RPC call header messages. This routine is useful for "
1741 "users who wish to generate RPC-style messages without using the RPC package."
1745 #: build/C/man3/rpc.3:1032
1747 msgid "B<bool_t xdr_callmsg(XDR *>I<xdrs>B<, struct rpc_msg *>I<cmsg>B<);>\n"
1751 #: build/C/man3/rpc.3:1037
1753 "Used for describing RPC call messages. This routine is useful for users who "
1754 "wish to generate RPC-style messages without using the RPC package."
1758 #: build/C/man3/rpc.3:1040
1760 msgid "B<bool_t xdr_opaque_auth(XDR *>I<xdrs>B<, struct opaque_auth *>I<ap>B<);>\n"
1764 #: build/C/man3/rpc.3:1045
1766 "Used for describing RPC authentication information messages. This routine "
1767 "is useful for users who wish to generate RPC-style messages without using "
1772 #: build/C/man3/rpc.3:1048
1774 msgid "B<bool_t xdr_pmap(XDR *>I<xdrs>B<, struct pmap *>I<regs>B<);>\n"
1778 #: build/C/man3/rpc.3:1057
1780 "Used for describing parameters to various B<portmap> procedures, "
1781 "externally. This routine is useful for users who wish to generate these "
1782 "parameters without using the B<pmap> interface."
1786 #: build/C/man3/rpc.3:1060
1788 msgid "B<bool_t xdr_pmaplist(XDR *>I<xdrs>B<, struct pmaplist **>I<rp>B<);>\n"
1792 #: build/C/man3/rpc.3:1067
1794 "Used for describing a list of port mappings, externally. This routine is "
1795 "useful for users who wish to generate these parameters without using the "
1796 "B<pmap> interface."
1800 #: build/C/man3/rpc.3:1070
1803 "B<bool_t xdr_rejected_reply(XDR *>I<xdrs>B<, struct rejected_reply "
1808 #: build/C/man3/rpc.3:1075
1810 "Used for describing RPC reply messages. This routine is useful for users "
1811 "who wish to generate RPC-style messages without using the RPC package."
1815 #: build/C/man3/rpc.3:1078
1817 msgid "B<bool_t xdr_replymsg(XDR *>I<xdrs>B<, struct rpc_msg *>I<rmsg>B<);>\n"
1821 #: build/C/man3/rpc.3:1083
1823 "Used for describing RPC reply messages. This routine is useful for users "
1824 "who wish to generate RPC style messages without using the RPC package."
1828 #: build/C/man3/rpc.3:1086
1830 msgid "B<void xprt_register(SVCXPRT *>I<xprt>B<);>\n"
1834 #: build/C/man3/rpc.3:1093
1836 "After RPC service transport handles are created, they should register "
1837 "themselves with the RPC service package. This routine modifies the global "
1838 "variable I<svc_fds>. Service implementors usually do not need this routine."
1842 #: build/C/man3/rpc.3:1096
1844 msgid "B<void xprt_unregister(SVCXPRT *>I<xprt>B<);>\n"
1848 #: build/C/man3/rpc.3:1103
1850 "Before an RPC service transport handle is destroyed, it should unregister "
1851 "itself with the RPC service package. This routine modifies the global "
1852 "variable I<svc_fds>. Service implementors usually do not need this routine."
1855 #. We don't have an rpc_secure.3 page in the set at the moment -- MTK, 19 Sep 05
1856 #. .BR rpc_secure (3),
1858 #: build/C/man3/rpc.3:1107
1863 #: build/C/man3/rpc.3:1109 build/C/man3/xdr.3:546
1864 msgid "The following manuals:"
1868 #: build/C/man3/rpc.3:1111
1869 msgid "Remote Procedure Calls: Protocol Specification"
1873 #: build/C/man3/rpc.3:1113
1874 msgid "Remote Procedure Call Programming Guide"
1878 #: build/C/man3/rpc.3:1115
1879 msgid "rpcgen Programming Guide"
1883 #: build/C/man3/rpc.3:1121
1885 "I<RPC: Remote Procedure Call Protocol Specification>, RFC\\ 1050, Sun "
1886 "Microsystems, Inc., USC-ISI."
1890 #: build/C/man5/rpc.5:8
1896 #: build/C/man5/rpc.5:11
1897 msgid "rpc - RPC program number data base"
1901 #: build/C/man5/rpc.5:13
1906 #: build/C/man5/rpc.5:19
1908 "The I<rpc> file contains user readable names that can be used in place of "
1909 "RPC program numbers. Each line has the following information:"
1913 #: build/C/man5/rpc.5:21
1914 msgid "name of server for the RPC program"
1918 #: build/C/man5/rpc.5:25
1919 msgid "RPC program number"
1923 #: build/C/man5/rpc.5:29
1928 #: build/C/man5/rpc.5:35
1930 "Items are separated by any number of blanks and/or tab characters. A "
1931 "\\(aq#\\(aq indicates the beginning of a comment; characters from the "
1932 "\\(aq#\\(aq to the end of the line are not interpreted by routines which "
1937 #: build/C/man5/rpc.5:38
1939 "Here is an example of the I</etc/rpc> file from the Sun RPC Source "
1944 #: build/C/man5/rpc.5:73
1948 "# rpc 88/08/01 4.0 RPCSRC; from 1.12 88/02/07 SMI\n"
1950 "portmapper 100000 portmap sunrpc\n"
1951 "rstatd 100001 rstat rstat_svc rup perfmeter\n"
1952 "rusersd 100002 rusers\n"
1953 "nfs 100003 nfsprog\n"
1954 "ypserv 100004 ypprog\n"
1955 "mountd 100005 mount showmount\n"
1957 "walld 100008 rwall shutdown\n"
1958 "yppasswdd 100009 yppasswd\n"
1959 "etherstatd 100010 etherstat\n"
1960 "rquotad 100011 rquotaprog quota rquota\n"
1961 "sprayd 100012 spray\n"
1962 "3270_mapper 100013\n"
1963 "rje_mapper 100014\n"
1964 "selection_svc 100015 selnsvc\n"
1965 "database_svc 100016\n"
1974 "bootparam 100026\n"
1975 "ypupdated 100028 ypupdate\n"
1976 "keyserv 100029 keyserver\n"
1983 #: build/C/man5/rpc.5:80
1984 msgid "RPC program number data base"
1988 #: build/C/man5/rpc.5:82
1989 msgid "B<getrpcent>(3)"
1993 #: build/C/man3/rtime.3:12
1999 #: build/C/man3/rtime.3:15
2000 msgid "rtime - get time from a remote machine"
2004 #: build/C/man3/rtime.3:18
2006 msgid "B<#include E<lt>rpc/auth_des.hE<gt>>\n"
2010 #: build/C/man3/rtime.3:21
2013 "B<int rtime(struct sockaddr_in *>I<addrp>B<, struct rpc_timeval "
2015 "B< struct rpc_timeval *>I<timeout>B<);>\n"
2019 #: build/C/man3/rtime.3:25
2021 "This function uses the Time Server Protocol as described in RFC\\ 868 to "
2022 "obtain the time from a remote machine."
2026 #: build/C/man3/rtime.3:31
2028 "The Time Server Protocol gives the time in seconds since 00:00:00 UTC, 1 Jan "
2029 "1900, and this function subtracts the appropriate constant in order to "
2030 "convert the result to seconds since the Epoch, 1970-01-01 00:00:00 +0000 "
2035 #: build/C/man3/rtime.3:36
2037 "When I<timeout> is non-NULL, the udp/time socket (port 37) is used. "
2038 "Otherwise, the tcp/time socket (port 37) is used."
2042 #: build/C/man3/rtime.3:42
2044 "On success, 0 is returned, and the obtained 32-bit time value is stored in "
2045 "I<timep-E<gt>tv_sec>. In case of error -1 is returned, and I<errno> is set "
2050 #: build/C/man3/rtime.3:51
2052 "All errors for underlying functions (B<sendto>(2), B<poll>(2), "
2053 "B<recvfrom>(2), B<connect>(2), B<read>(2)) can occur. Moreover:"
2057 #: build/C/man3/rtime.3:51
2063 #: build/C/man3/rtime.3:54
2064 msgid "The number of returned bytes is not 4."
2068 #: build/C/man3/rtime.3:54
2070 msgid "B<ETIMEDOUT>"
2074 #: build/C/man3/rtime.3:57
2075 msgid "The waiting time as defined in timeout has expired."
2079 #: build/C/man3/rtime.3:57
2085 #: build/C/man3/rtime.3:58
2087 msgid "Multithreading (see pthreads(7))"
2091 #: build/C/man3/rtime.3:62
2092 msgid "The B<rtime>() function is thread-safe."
2096 #: build/C/man3/rtime.3:64
2097 msgid "Only IPv4 is supported."
2101 #: build/C/man3/rtime.3:71
2103 "Some I<in.timed> versions support only TCP. Try the example program with "
2104 "I<use_tcp> set to 1."
2108 #: build/C/man3/rtime.3:73
2109 msgid "Libc5 uses the prototype"
2113 #: build/C/man3/rtime.3:76
2115 msgid " int rtime(struct sockaddr_in *, struct timeval *, struct timeval *);\n"
2119 #: build/C/man3/rtime.3:82
2120 msgid "and requires I<E<lt>sys/time.hE<gt>> instead of I<E<lt>rpc/auth_des.hE<gt>>."
2124 #: build/C/man3/rtime.3:85
2126 "B<rtime>() in glibc 2.2.5 and earlier does not work properly on 64-bit "
2131 #: build/C/man3/rtime.3:85
2137 #: build/C/man3/rtime.3:91
2139 "This example requires that port 37 is up and open. You may check that the "
2140 "time entry within I</etc/inetd.conf> is not commented out."
2144 #: build/C/man3/rtime.3:95
2146 "The program connects to a computer called \"linux\". Using \"localhost\" "
2147 "does not work. The result is the localtime of the computer \"linux\"."
2151 #: build/C/man3/rtime.3:104
2154 "#include E<lt>stdio.hE<gt>\n"
2155 "#include E<lt>stdlib.hE<gt>\n"
2156 "#include E<lt>errno.hE<gt>\n"
2157 "#include E<lt>string.hE<gt>\n"
2158 "#include E<lt>time.hE<gt>\n"
2159 "#include E<lt>rpc/auth_des.hE<gt>\n"
2160 "#include E<lt>netdb.hE<gt>\n"
2164 #: build/C/man3/rtime.3:107
2167 "static int use_tcp = 0;\n"
2168 "static char *servername = \"linux\";\n"
2172 #: build/C/man3/rtime.3:116
2178 " struct sockaddr_in name;\n"
2179 " struct rpc_timeval time1 = {0,0};\n"
2180 " struct rpc_timeval timeout = {1,0};\n"
2181 " struct hostent *hent;\n"
2186 #: build/C/man3/rtime.3:121
2189 " memset(&name, 0, sizeof(name));\n"
2191 " hent = gethostbyname(servername);\n"
2192 " memcpy(&name.sin_addr, hent-E<gt>h_addr, hent-E<gt>h_length);\n"
2196 #: build/C/man3/rtime.3:129
2199 " ret = rtime(&name, &time1, use_tcp ? NULL : &timeout);\n"
2200 " if (ret E<lt> 0)\n"
2201 " perror(\"rtime error\");\n"
2203 " time_t t = time1.tv_sec;\n"
2204 " printf(\"%s\\en\", ctime(&t));\n"
2209 #: build/C/man3/rtime.3:132
2212 " exit(EXIT_SUCCESS);\n"
2219 #: build/C/man3/rtime.3:138
2220 msgid "B<ntpdate>(1), B<inetd>(8)"
2224 #: build/C/man3/xdr.3:11
2230 #: build/C/man3/xdr.3:11
2236 #: build/C/man3/xdr.3:14
2237 msgid "xdr - library routines for external data representation"
2241 #: build/C/man3/xdr.3:20
2243 "These routines allow C programmers to describe arbitrary data structures in "
2244 "a machine-independent fashion. Data for remote procedure calls are "
2245 "transmitted using these routines."
2249 #: build/C/man3/xdr.3:24
2251 "The prototypes below are declared in I<E<lt>rpc/xdr.hE<gt>> and make use of "
2252 "the following types:"
2256 #: build/C/man3/xdr.3:30
2258 msgid "B<typedef bool_t (*>I<xdrproc_t>B<) (XDR *, void *,...);>\n"
2262 #: build/C/man3/xdr.3:37
2263 msgid "For the declaration of the I<XDR> type, see I<E<lt>rpc/xdr.hE<gt>>."
2267 #: build/C/man3/xdr.3:42
2270 "B<bool_t xdr_array(XDR *>I<xdrs>B<, char **>I<arrp>B<, unsigned int "
2272 "B< unsigned int >I<maxsize>B<, unsigned int >I<elsize>B<,>\n"
2273 "B< xdrproc_t >I<elproc>B<);>\n"
2277 #: build/C/man3/xdr.3:63
2279 "A filter primitive that translates between variable-length arrays and their "
2280 "corresponding external representations. The argument I<arrp> is the address "
2281 "of the pointer to the array, while I<sizep> is the address of the element "
2282 "count of the array; this element count cannot exceed I<maxsize>. The "
2283 "argument I<elsize> is the I<sizeof> each of the array's elements, and "
2284 "I<elproc> is an XDR filter that translates between the array elements' C "
2285 "form, and their external representation. This routine returns one if it "
2286 "succeeds, zero otherwise."
2290 #: build/C/man3/xdr.3:66
2292 msgid "B<bool_t xdr_bool(XDR *>I<xdrs>B<, bool_t *>I<bp>B<);>\n"
2296 #: build/C/man3/xdr.3:74
2298 "A filter primitive that translates between booleans (C integers) and their "
2299 "external representations. When encoding data, this filter produces values "
2300 "of either one or zero. This routine returns one if it succeeds, zero "
2305 #: build/C/man3/xdr.3:78
2308 "B<bool_t xdr_bytes(XDR *>I<xdrs>B<, char **>I<sp>B<, unsigned int "
2310 "B< unsigned int >I<maxsize>B<);>\n"
2314 #: build/C/man3/xdr.3:91
2316 "A filter primitive that translates between counted byte strings and their "
2317 "external representations. The argument I<sp> is the address of the string "
2318 "pointer. The length of the string is located at address I<sizep>; strings "
2319 "cannot be longer than I<maxsize>. This routine returns one if it succeeds, "
2324 #: build/C/man3/xdr.3:94
2326 msgid "B<bool_t xdr_char(XDR *>I<xdrs>B<, char *>I<cp>B<);>\n"
2330 #: build/C/man3/xdr.3:106
2332 "A filter primitive that translates between C characters and their external "
2333 "representations. This routine returns one if it succeeds, zero otherwise. "
2334 "Note: encoded characters are not packed, and occupy 4 bytes each. For "
2335 "arrays of characters, it is worthwhile to consider B<xdr_bytes>(), "
2336 "B<xdr_opaque>() or B<xdr_string>()."
2340 #: build/C/man3/xdr.3:109
2342 msgid "B<void xdr_destroy(XDR *>I<xdrs>B<);>\n"
2346 #: build/C/man3/xdr.3:120
2348 "A macro that invokes the destroy routine associated with the XDR stream, "
2349 "I<xdrs>. Destruction usually involves freeing private data structures "
2350 "associated with the stream. Using I<xdrs> after invoking B<xdr_destroy>() "
2355 #: build/C/man3/xdr.3:123
2357 msgid "B<bool_t xdr_double(XDR *>I<xdrs>B<, double *>I<dp>B<);>\n"
2361 #: build/C/man3/xdr.3:129
2363 "A filter primitive that translates between C I<double> precision numbers and "
2364 "their external representations. This routine returns one if it succeeds, "
2369 #: build/C/man3/xdr.3:132
2371 msgid "B<bool_t xdr_enum(XDR *>I<xdrs>B<, enum_t *>I<ep>B<);>\n"
2375 #: build/C/man3/xdr.3:138
2377 "A filter primitive that translates between C I<enum>s (actually integers) "
2378 "and their external representations. This routine returns one if it "
2379 "succeeds, zero otherwise."
2383 #: build/C/man3/xdr.3:141
2385 msgid "B<bool_t xdr_float(XDR *>I<xdrs>B<, float *>I<fp>B<);>\n"
2389 #: build/C/man3/xdr.3:147
2391 "A filter primitive that translates between C I<float>s and their external "
2392 "representations. This routine returns one if it succeeds, zero otherwise."
2396 #: build/C/man3/xdr.3:150
2398 msgid "B<void xdr_free(xdrproc_t >I<proc>B<, char *>I<objp>B<);>\n"
2402 #: build/C/man3/xdr.3:160
2404 "Generic freeing routine. The first argument is the XDR routine for the "
2405 "object being freed. The second argument is a pointer to the object itself. "
2406 "Note: the pointer passed to this routine is I<not> freed, but what it points "
2407 "to I<is> freed (recursively)."
2411 #: build/C/man3/xdr.3:163
2413 msgid "B<unsigned int xdr_getpos(XDR *>I<xdrs>B<);>\n"
2417 #: build/C/man3/xdr.3:173
2419 "A macro that invokes the get-position routine associated with the XDR "
2420 "stream, I<xdrs>. The routine returns an unsigned integer, which indicates "
2421 "the position of the XDR byte stream. A desirable feature of XDR streams is "
2422 "that simple arithmetic works with this number, although the XDR stream "
2423 "instances need not guarantee this."
2427 #: build/C/man3/xdr.3:176
2429 msgid "B<long *xdr_inline(XDR *>I<xdrs>B<, int >I<len>B<);>\n"
2433 #: build/C/man3/xdr.3:186
2435 "A macro that invokes the inline routine associated with the XDR stream, "
2436 "I<xdrs>. The routine returns a pointer to a contiguous piece of the "
2437 "stream's buffer; I<len> is the byte length of the desired buffer. Note: "
2438 "pointer is cast to I<long\\ *>."
2442 #: build/C/man3/xdr.3:193
2444 "Warning: B<xdr_inline>() may return NULL (0) if it cannot allocate a "
2445 "contiguous piece of a buffer. Therefore the behavior may vary among stream "
2446 "instances; it exists for the sake of efficiency."
2450 #: build/C/man3/xdr.3:196
2452 msgid "B<bool_t xdr_int(XDR *>I<xdrs>B<, int *>I<ip>B<);>\n"
2456 #: build/C/man3/xdr.3:201
2458 "A filter primitive that translates between C integers and their external "
2459 "representations. This routine returns one if it succeeds, zero otherwise."
2463 #: build/C/man3/xdr.3:204
2465 msgid "B<bool_t xdr_long(XDR *>I<xdrs>B<, long *>I<lp>B<);>\n"
2469 #: build/C/man3/xdr.3:210
2471 "A filter primitive that translates between C I<long> integers and their "
2472 "external representations. This routine returns one if it succeeds, zero "
2477 #: build/C/man3/xdr.3:214
2480 "B<void xdrmem_create(XDR *>I<xdrs>B<, char *>I<addr>B<, unsigned int "
2482 "B< enum xdr_op >I<op>B<);>\n"
2486 #: build/C/man3/xdr.3:231
2488 "This routine initializes the XDR stream object pointed to by I<xdrs>. The "
2489 "stream's data is written to, or read from, a chunk of memory at location "
2490 "I<addr> whose length is no more than I<size> bytes long. The I<op> "
2491 "determines the direction of the XDR stream (either B<XDR_ENCODE>, "
2492 "B<XDR_DECODE>, or B<XDR_FREE>)."
2496 #: build/C/man3/xdr.3:234
2499 "B<bool_t xdr_opaque(XDR *>I<xdrs>B<, char *>I<cp>B<, unsigned int "
2504 #: build/C/man3/xdr.3:244
2506 "A filter primitive that translates between fixed size opaque data and its "
2507 "external representation. The argument I<cp> is the address of the opaque "
2508 "object, and I<cnt> is its size in bytes. This routine returns one if it "
2509 "succeeds, zero otherwise."
2513 #: build/C/man3/xdr.3:248
2516 "B<bool_t xdr_pointer(XDR *>I<xdrs>B<, char **>I<objpp>B<,>\n"
2517 "B< unsigned int >I<objsize>B<, xdrproc_t >I<xdrobj>B<);>\n"
2521 #: build/C/man3/xdr.3:260
2523 "Like B<xdr_reference>() except that it serializes null pointers, whereas "
2524 "B<xdr_reference>() does not. Thus, B<xdr_pointer>() can represent "
2525 "recursive data structures, such as binary trees or linked lists."
2529 #: build/C/man3/xdr.3:266
2532 "B<void xdrrec_create(XDR *>I<xdrs>B<, unsigned int >I<sendsize>B<,>\n"
2533 "B< unsigned int >I<recvsize>B<, char *>I<handle>B<,>\n"
2534 "B< int (*>I<readit>B<) (char *, char *, int),>\n"
2535 "B< int (*>I<writeit>B<) (char *, char *, int));>\n"
2539 #: build/C/man3/xdr.3:293
2541 "This routine initializes the XDR stream object pointed to by I<xdrs>. The "
2542 "stream's data is written to a buffer of size I<sendsize>; a value of zero "
2543 "indicates the system should use a suitable default. The stream's data is "
2544 "read from a buffer of size I<recvsize>; it too can be set to a suitable "
2545 "default by passing a zero value. When a stream's output buffer is full, "
2546 "I<writeit> is called. Similarly, when a stream's input buffer is empty, "
2547 "I<readit> is called. The behavior of these two routines is similar to the "
2548 "system calls B<read>(2) and B<write>(2), except that I<handle> is passed to "
2549 "the former routines as the first argument. Note: the XDR stream's I<op> "
2550 "field must be set by the caller."
2554 #: build/C/man3/xdr.3:297
2556 "Warning: this XDR stream implements an intermediate record stream. "
2557 "Therefore there are additional bytes in the stream to provide record "
2558 "boundary information."
2562 #: build/C/man3/xdr.3:300
2564 msgid "B<bool_t xdrrec_endofrecord(XDR *>I<xdrs>B<, int >I<sendnow>B<);>\n"
2568 #: build/C/man3/xdr.3:309
2570 "This routine can be invoked only on streams created by B<xdrrec_create>(). "
2571 "The data in the output buffer is marked as a completed record, and the "
2572 "output buffer is optionally written out if I<sendnow> is nonzero. This "
2573 "routine returns one if it succeeds, zero otherwise."
2577 #: build/C/man3/xdr.3:312
2579 msgid "B<bool_t xdrrec_eof(XDR *>I<xdrs>B<);>\n"
2583 #: build/C/man3/xdr.3:319
2585 "This routine can be invoked only on streams created by B<xdrrec_create>(). "
2586 "After consuming the rest of the current record in the stream, this routine "
2587 "returns one if the stream has no more input, zero otherwise."
2591 #: build/C/man3/xdr.3:322
2593 msgid "B<bool_t xdrrec_skiprecord(XDR *>I<xdrs>B<);>\n"
2597 #: build/C/man3/xdr.3:330
2599 "This routine can be invoked only on streams created by B<xdrrec_create>(). "
2600 "It tells the XDR implementation that the rest of the current record in the "
2601 "stream's input buffer should be discarded. This routine returns one if it "
2602 "succeeds, zero otherwise."
2606 #: build/C/man3/xdr.3:334
2609 "B<bool_t xdr_reference(XDR *>I<xdrs>B<, char **>I<pp>B<, unsigned int "
2611 "B< xdrproc_t >I<proc>B<);>\n"
2615 #: build/C/man3/xdr.3:350
2617 "A primitive that provides pointer chasing within structures. The argument "
2618 "I<pp> is the address of the pointer; I<size> is the I<sizeof> the structure "
2619 "that I<*pp> points to; and I<proc> is an XDR procedure that filters the "
2620 "structure between its C form and its external representation. This routine "
2621 "returns one if it succeeds, zero otherwise."
2625 #: build/C/man3/xdr.3:355
2627 "Warning: this routine does not understand null pointers. Use "
2628 "B<xdr_pointer>() instead."
2632 #: build/C/man3/xdr.3:358
2634 msgid "B<xdr_setpos(XDR *>I<xdrs>B<, unsigned int >I<pos>B<);>\n"
2638 #: build/C/man3/xdr.3:369
2640 "A macro that invokes the set position routine associated with the XDR stream "
2641 "I<xdrs>. The argument I<pos> is a position value obtained from "
2642 "B<xdr_getpos>(). This routine returns one if the XDR stream could be "
2643 "repositioned, and zero otherwise."
2647 #: build/C/man3/xdr.3:373
2649 "Warning: it is difficult to reposition some types of XDR streams, so this "
2650 "routine may fail with one type of stream and succeed with another."
2654 #: build/C/man3/xdr.3:376
2656 msgid "B<bool_t xdr_short(XDR *>I<xdrs>B<, short *>I<sp>B<);>\n"
2660 #: build/C/man3/xdr.3:382
2662 "A filter primitive that translates between C I<short> integers and their "
2663 "external representations. This routine returns one if it succeeds, zero "
2668 #: build/C/man3/xdr.3:385
2671 "B<void xdrstdio_create(XDR *>I<xdrs>B<, FILE *>I<file>B<, enum xdr_op "
2676 #: build/C/man3/xdr.3:400
2678 "This routine initializes the XDR stream object pointed to by I<xdrs>. The "
2679 "XDR stream data is written to, or read from, the I<stdio> stream I<file>. "
2680 "The argument I<op> determines the direction of the XDR stream (either "
2681 "B<XDR_ENCODE>, B<XDR_DECODE>, or B<XDR_FREE>)."
2685 #: build/C/man3/xdr.3:407
2687 "Warning: the destroy routine associated with such XDR streams calls "
2688 "B<fflush>(3) on the I<file> stream, but never B<fclose>(3)."
2692 #: build/C/man3/xdr.3:410
2695 "B<bool_t xdr_string(XDR *>I<xdrs>B<, char **>I<sp>B<, unsigned int "
2696 ">I<maxsize>B<);>\n"
2700 #: build/C/man3/xdr.3:420
2702 "A filter primitive that translates between C strings and their corresponding "
2703 "external representations. Strings cannot be longer than I<maxsize>. Note: "
2704 "I<sp> is the address of the string's pointer. This routine returns one if "
2705 "it succeeds, zero otherwise."
2709 #: build/C/man3/xdr.3:423
2711 msgid "B<bool_t xdr_u_char(XDR *>I<xdrs>B<, unsigned char *>I<ucp>B<);>\n"
2715 #: build/C/man3/xdr.3:429
2717 "A filter primitive that translates between I<unsigned> C characters and "
2718 "their external representations. This routine returns one if it succeeds, "
2723 #: build/C/man3/xdr.3:432
2725 msgid "B<bool_t xdr_u_int(XDR *>I<xdrs>B<, unsigned *>I<up>B<);>\n"
2729 #: build/C/man3/xdr.3:438
2731 "A filter primitive that translates between C I<unsigned> integers and their "
2732 "external representations. This routine returns one if it succeeds, zero "
2737 #: build/C/man3/xdr.3:441
2739 msgid "B<bool_t xdr_u_long(XDR *>I<xdrs>B<, unsigned long *>I<ulp>B<);>\n"
2743 #: build/C/man3/xdr.3:447
2745 "A filter primitive that translates between C I<unsigned long> integers and "
2746 "their external representations. This routine returns one if it succeeds, "
2751 #: build/C/man3/xdr.3:450
2753 msgid "B<bool_t xdr_u_short(XDR *>I<xdrs>B<, unsigned short *>I<usp>B<);>\n"
2757 #: build/C/man3/xdr.3:456
2759 "A filter primitive that translates between C I<unsigned short> integers and "
2760 "their external representations. This routine returns one if it succeeds, "
2765 #: build/C/man3/xdr.3:461
2768 "B<bool_t xdr_union(XDR *>I<xdrs>B<, int *>I<dscmp>B<, char *>I<unp>B<,>\n"
2769 "B< struct xdr_discrim *>I<choices>B<,>\n"
2770 "B< xdrproc_t >I<defaultarm>B<); /* may equal NULL */>\n"
2774 #: build/C/man3/xdr.3:495
2776 "A filter primitive that translates between a discriminated C I<union> and "
2777 "its corresponding external representation. It first translates the "
2778 "discriminant of the union located at I<dscmp>. This discriminant is always "
2779 "an I<enum_t>. Next the union located at I<unp> is translated. The argument "
2780 "I<choices> is a pointer to an array of B<xdr_discrim>() structures. Each "
2781 "structure contains an ordered pair of [I<value>,I<proc>]. If the union's "
2782 "discriminant is equal to the associated I<value>, then the I<proc> is called "
2783 "to translate the union. The end of the B<xdr_discrim>() structure array is "
2784 "denoted by a routine of value NULL. If the discriminant is not found in the "
2785 "I<choices> array, then the I<defaultarm> procedure is called (if it is not "
2786 "NULL). Returns one if it succeeds, zero otherwise."
2790 #: build/C/man3/xdr.3:499
2793 "B<bool_t xdr_vector(XDR *>I<xdrs>B<, char *>I<arrp>B<, unsigned int "
2795 "B< unsigned int >I<elsize>B<, xdrproc_t >I<elproc>B<);>\n"
2799 #: build/C/man3/xdr.3:518
2801 "A filter primitive that translates between fixed-length arrays and their "
2802 "corresponding external representations. The argument I<arrp> is the address "
2803 "of the pointer to the array, while I<size> is the element count of the "
2804 "array. The argument I<elsize> is the I<sizeof> each of the array's "
2805 "elements, and I<elproc> is an XDR filter that translates between the array "
2806 "elements' C form, and their external representation. This routine returns "
2807 "one if it succeeds, zero otherwise."
2811 #: build/C/man3/xdr.3:521
2813 msgid "B<bool_t xdr_void(void);>\n"
2817 #: build/C/man3/xdr.3:526
2819 "This routine always returns one. It may be passed to RPC routines that "
2820 "require a function argument, where nothing is to be done."
2824 #: build/C/man3/xdr.3:529
2826 msgid "B<bool_t xdr_wrapstring(XDR *>I<xdrs>B<, char **>I<sp>B<);>\n"
2830 #: build/C/man3/xdr.3:542
2832 "A primitive that calls B<xdr_string(xdrs, sp,MAXUN.UNSIGNED );> where "
2833 "B<MAXUN.UNSIGNED> is the maximum value of an unsigned integer. "
2834 "B<xdr_wrapstring>() is handy because the RPC package passes a maximum of "
2835 "two XDR routines as arguments, and B<xdr_string>(), one of the most "
2836 "frequently used primitives, requires three. Returns one if it succeeds, "
2841 #: build/C/man3/xdr.3:544
2846 #: build/C/man3/xdr.3:548
2847 msgid "eXternal Data Representation Standard: Protocol Specification"
2851 #: build/C/man3/xdr.3:550
2852 msgid "eXternal Data Representation: Sun Technical Notes"
2856 #: build/C/man3/xdr.3:554
2858 "I<XDR: External Data Representation Standard>, RFC\\ 1014, Sun Microsystems, "