1 .\" This page was taken from the 4.4BSD-Lite CDROM (BSD license)
3 .\" @(#)rpc.3n 2.4 88/08/08 4.0 RPCSRC; from 1.19 88/06/24 SMI
5 .\" 2007-12-30, mtk, Convert function prototypes to modern C syntax
7 .\" Japanese Version Copyright (c) 1999 HANATAKA Shinya
8 .\" all rights reserved.
9 .\" Translated Tue Jan 4 20:48:23 JST 2000
10 .\" by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
11 .\" Updated & Modified Sun Oct 21 01:07:09 JST 2001
12 .\" by Yuichi SATO <ysato@h4.dion.ne.jp>
14 .TH RPC 3 2008-07-17 "" "Linux Programmer's Manual"
17 .\"O rpc \- library routines for remote procedure calls
18 rpc \- ±ó³Ö¼ê³¤¸Æ¤Ó½Ð¤·(RPC)¤Î¤¿¤á¤Î¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Æ¥£¥ó
19 .\"O .SH SYNOPSIS AND DESCRIPTION
21 .\"O These routines allow C programs to make procedure
22 .\"O calls on other machines across the network.
23 .\"O First, the client calls a procedure to send a data packet to the server.
24 .\"O Upon receipt of the packet, the server calls a dispatch routine
25 .\"O to perform the requested service, and then sends back a reply.
26 .\"O Finally, the procedure call returns to the client.
27 ¤³¤ì¤é¤Î¥ë¡¼¥Æ¥£¥ó¤Ï C ¥×¥í¥°¥é¥à¤Ç¥Í¥Ã¥È¥ï¡¼¥¯¤òÄ̤·¤Æ
28 ¾¤Î¥Þ¥·¥ó¤Ë¥¢¥¯¥»¥¹¤¹¤ë¥×¥í¥·¥¸¥ã¤òºîÀ®¤¹¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¡£
29 ºÇ½é¤Ë¥¯¥é¥¤¥¢¥ó¥È¤Ï¥Ç¡¼¥¿¥Ñ¥±¥Ã¥È¤ò¥µ¡¼¥Ð¤ËÁ÷¤ë¤¿¤á¤Ë
30 ¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£
31 ¥µ¡¼¥Ð¤Ï¥Ñ¥±¥Ã¥È¤ò¼õ¤±¼è¤ë¤È¡¢ÇÛʬ¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤·¤Æ
32 Í׵ᤵ¤ì¤¿¥µ¡¼¥Ó¥¹¤Ë¼Â¹Ô¤·¡¢ÊÖÅú¤òÁ÷¤êÊÖ¤¹¡£
33 ºÇ¸å¤Ë¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Ï¥¯¥é¥¤¥¢¥ó¥È¤Ø¤ÈÌá¤ë¡£
35 .\"O .\" We don't have an rpc_secure.3 page at the moment -- MTK, 19 Sep 05
36 .\"O .\" Routines that are used for Secure RPC (DES authentication) are described in
37 .\"O .\" .BR rpc_secure (3).
38 .\"O .\" Secure RPC can be used only if DES encryption is available.
39 .\" º£¸½ºß¤Ï rpc_secure.3 ¤ÏÆþ¤Ã¤Æ¤¤¤Ê¤¤ -- MTK, 19 Sep 05
40 .\" (DES ǧ¾Ú¤Ë¤è¤ë) Secure RPC ¤Ç»ÈÍѤµ¤ì¤ë¥ë¡¼¥Æ¥£¥ó¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤Ï
41 .\" .BR rpc_secure (3)
42 .\" ¤Ë¸ºß¤¹¤ë¡£ Secure RPC ¤Ï DES ǧ¾Ú¤¬ÍøÍѲÄǽ¤Ê¾ì¹ç¤Ë¤Î¤ß»ÈÍѤǤ¤ë¡£
44 .\"O To take use of these routines, include the header file
45 .\"O .IR "<rpc/rpc.h>" .
46 ¤³¤ì¤é¤Î¥ë¡¼¥Æ¥£¥ó¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë
48 ¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤³¤È¡£
50 .\"O The prototypes below make use of the following types:
51 ²¼µ¤Î¥×¥í¥È¥¿¥¤¥×¤Ç¤Ï¼¡¤Î·¿¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£
55 typedef int \fIbool_t\fP;
57 typedef bool_t (*\fIxdrproc_t\fP) (XDR *, void *,...);
59 typedef bool_t (*\fIresultproc_t\fP) (caddr_t resp,
60 struct sockaddr_in *raddr);
64 .\"O See the header files for the declarations of the
76 ¤ÎÀë¸À¤Ë¤Ä¤¤¤Æ¤Ï¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò»²¾È¡£
79 .BI "void auth_destroy(AUTH *" auth );
82 .\"O A macro that destroys the authentication information associated with
84 .\"O Destruction usually involves deallocation of private data structures.
87 .\"O is undefined after calling
88 .\"O .BR auth_destroy ().
91 ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ç§¾Ú¾ðÊó¤òÇ˲õ¤¹¤ë¡£Ç˲õ¤ÏÄ̾ï¤Ï»äŪ¤Ê¥Ç¡¼¥¿¹½Â¤¤Î
96 ¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£
99 .BI "AUTH *authnone_create(void);"
102 .\"O Create and returns an RPC
103 .\"O authentication handle that passes nonusable authentication
104 .\"O information with each remote procedure call.
105 .\"O This is the default authentication used by RPC.
106 ³Æ¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Ç»ÈÍѤǤ¤Ê¤¤²¾¤Îǧ¾Ú¾ðÊó¤È¤·¤ÆÅϤµ¤ì¤ë
107 RPC ǧ¾Ú¥Ï¥ó¥É¥ë¤òºîÀ®¤·¤ÆÊÖ¤¹¡£
108 ¤³¤ì¤Ï RPC ¤Ç»ÈÍѤµ¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤Îǧ¾Ú¤Ç¤¢¤ë¡£
111 .BI "AUTH *authunix_create(char *" host ", int " uid ", int " gid ,
112 .BI " int " len ", int *" aup_gids );
115 .\"O Create and return an RPC authentication handle that contains
116 .\"O authentication information.
119 .\"O is the name of the machine on which the information was created;
121 .\"O is the user's user ID;
123 .\"O is the user's current group ID;
127 .\"O refer to a counted array of groups to which the user belongs.
128 .\"O It is easy to impersonate a user.
129 ǧ¾Ú¾ðÊó¤ò´Þ¤ó¤À RPC ǧ¾Ú¥Ï¥ó¥É¥ë¤òºîÀ®¤·¤ÆÊÖ¤¹¡£
131 ¥Ñ¥é¥á¡¼¥¿¡¼¤Ï¾ðÊ󤬺îÀ®¤µ¤ì¤¿¥Þ¥·¥ó¤Î̾Á°¤Ç¤¢¤ë¡£
137 ¤Ï¤½¤Î¥æ¡¼¥¶¤Î¸½ºß¤Î¥°¥ë¡¼¥×
143 ¤Ï¤½¤Î¥æ¡¼¥¶¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤ÎÇÛÎó¤ò»²¾È¤·¤Æ¤¤¤ë¡£
144 ¾¤Î¥æ¡¼¥¶¤Ë¤Ê¤ê¤¹¤Þ¤¹¤³¤È¤Ï´Êñ¤Ç¤¢¤ë¡£
147 .BI "AUTH *authunix_create_default(void);"
151 .\"O .BR authunix_create ()
152 .\"O with the appropriate parameters.
154 .BR authunix_create ()
158 .BI "int callrpc(char *" host ", unsigned long " prognum ,
159 .BI " unsigned long " versnum ", unsigned long " procnum ,
160 .BI " xdrproc_t " inproc ", char *" in ,
161 .BI " xdrproc_t " outproc ", char *" out );
164 .\"O Call the remote procedure associated with
173 .\"O is the address of the procedure's argument(s), and
175 .\"O is the address of where to place the result(s);
177 .\"O is used to encode the procedure's parameters, and
179 .\"O is used to decode the procedure's results.
180 .\"O This routine returns zero if it succeeds, or the value of
181 .\"O .B "enum clnt_stat"
182 .\"O cast to an integer if it fails.
184 .\"O .BR clnt_perrno ()
185 .\"O is handy for translating failure statuses into messages.
192 ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£
195 ¤Ï¥×¥í¥·¥¸¥ã¤Î°ú¤¿ô¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ê
197 ¤Ï·ë²Ì¤ò³ÊǼ¤¹¤ë¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
199 ¤Ï¥×¥í¥·¥¸¥ã¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¡¢
201 ¤Ï·ë²Ì¤ò¥Ç¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£
202 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï
204 ¤òÀ°¿ô¤Ë¥¥ã¥¹¥È¤·¤¿ÃͤòÊÖ¤¹¡£
206 ¥ë¡¼¥Æ¥£¥ó¤¬¼ºÇԤξõÂÖ¤ò¥á¥Ã¥»¡¼¥¸¤ËÊÑ´¹¤¹¤ë¤Î¤Ë»ÈÍѤǤ¤ë¡£
208 .\"O Warning: calling remote procedures with this routine
209 .\"O uses UDP/IP as a transport; see
210 .\"O .BR clntudp_create ()
211 .\"O for restrictions.
212 .\"O You do not have control of timeouts or authentication using this routine.
213 ·Ù¹ð: ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ç¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¤ÈÄÌ¿®¤Ë¤Ï
214 UDP/IP ¤¬»ÈÍѤµ¤ì¤ë¡£¤³¤ÎºÝ¤ÎÀ©¸Â¤Ë¤Ä¤¤¤Æ¤Ï
215 .BR clntudp_create ()
216 ¤ò»²¾È¤¹¤ë¤³¤È¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ò»ÈÍѤ·¤Æǧ¾Ú¤ä»þ´ÖÀÚ¤ì¤ÎÀ©¸æ¤ò
220 .BI "enum clnt_stat clnt_broadcast(unsigned long " prognum ,
221 .BI " unsigned long " versnum ", unsigned long " procnum ,
222 .BI " xdrproc_t " inproc ", char *" in ,
223 .BI " xdrproc_t " outproc ", char *" out ,
224 .BI " resultproc_t " eachresult );
229 .\"O except the call message is broadcast to all locally
230 .\"O connected broadcast nets.
231 .\"O Each time it receives a response, this routine calls
232 .\"O .BR eachresult (),
235 ¤ÈƱÍͤǤ¢¤ë¤¬¡¢¥á¥Ã¥»¡¼¥¸¤¬¥í¡¼¥«¥ë¤Î¥Ö¥í¡¼¥É¥¥ã¥¹¥È¡¦¥Í¥Ã¥È¥ï¡¼¥¯
236 Á´ÂÎ¤Ø¤È¥Ö¥í¡¼¥É¥¥ã¥¹¥È¤µ¤ì¤ëÅÀ¤¬°Û¤Ã¤Æ¤¤¤ë¡£²óÅú¤ò¼õ¤±¼è¤ëÅÙ¤Ë
237 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï°Ê²¼¤Î·Á¼°¤Î
243 .BI "eachresult(char *" out ", struct sockaddr_in *" addr );
252 .\"O .BR clnt_broadcast (),
253 .\"O except that the remote procedure's output is decoded there;
255 .\"O points to the address of the machine that sent the results.
257 .\"O .BR eachresult ()
259 .\"O .BR clnt_broadcast ()
260 .\"O waits for more replies; otherwise it returns with appropriate status.
264 .BR clnt_broadcast ()
267 ¤ÈƱ¤¸¤Ç¤¢¤ë¤¬¡¢¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤«¤é¤Î½ÐÎϤ¬¥Ç¥³¡¼¥É¤µ¤ì¤Æ¤¤¤ë
270 ¤Ï·ë²Ì¤òÁ÷¤Ã¤ÆÍ褿¥Þ¥·¥ó¤Î¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¡£
273 .BR clnt_broadcast ()
274 ¤Ï¤µ¤é¤Ê¤ë²óÅú¤òÂԤġ£¤½¤¦¤Ç¤Ê¤±¤ì¤ÐŬÀڤʾõÂ֤ǽªÎ»¤¹¤ë¡£
276 .\"O Warning: broadcast sockets are limited in size to the
277 .\"O maximum transfer unit of the data link.
278 .\"O For ethernet, this value is 1500 bytes.
279 ·Ù¹ð: ¥Ö¥í¡¼¥É¥¥ã¥¹¥È¡¦¥½¥±¥Ã¥È¤Ï¥Ç¡¼¥¿¥ê¥ó¥¯ÁؤκÇÂçžÁ÷ñ°Ì¤Ë
280 À©¸Â¤µ¤ì¤Æ¤¤¤ë¡£¥¤¡¼¥µ¥Í¥Ã¥È¤Î¾ì¹ç¡¢ºÇÂçÃÍ¤Ï 1500 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£
283 .BI "enum clnt_stat clnt_call(CLIENT *" clnt ", unsigned long " procnum ,
284 .BI " xdrproc_t " inproc ", char *" in ,
285 .BI " xdrproc_t " outproc ", char *" out ,
286 .BI " struct timeval " tout );
289 .\"O A macro that calls the remote procedure
291 .\"O associated with the client handle,
293 .\"O which is obtained with an RPC client creation routine such as
294 .\"O .BR clnt_create ().
295 ¤³¤Î¥Þ¥¯¥í¤Ï¥¯¥é¥¤¥¢¥ó¥È¡¦¥Ï¥ó¥É¥ë
299 ¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£
300 ¥¯¥é¥¤¥¢¥ó¥È¡¦¥Ï¥ó¥É¥ë¤Ï
304 ¥¯¥é¥¤¥¢¥ó¥ÈºîÀ®¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤ë¡£
307 .\"O is the address of the procedure's argument(s), and
309 .\"O is the address of where to place the result(s);
311 .\"O is used to encode the procedure's parameters, and
313 .\"O is used to decode the procedure's results;
315 .\"O is the time allowed for results to come back.
318 ¤Ï¥×¥í¥·¥¸¥ã¤Î°ú¤¿ô¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
320 ¤Ï¥×¥í¥·¥¸¥ã¤ÎÊÖ¤êÃͤò³ÊǼ¤¹¤ë¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
322 ¤Ï¥×¥í¥·¥¸¥ã¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£
324 ¤Ï¥×¥í¥·¥¸¥ã¤ÎÊÖ¤êÃͤò¥Ç¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£
326 ¤Ï·ë²Ì¤¬ÊÖ¤µ¤ì¤ë¤Î¤òÂԤĻþ´Ö¤Ç¤¢¤ë¡£
329 .BI "clnt_destroy(CLIENT *" clnt );
332 .\"O A macro that destroys the client's RPC handle.
333 .\"O Destruction usually involves deallocation
334 .\"O of private data structures, including
339 .\"O is undefined after calling
340 .\"O .BR clnt_destroy ().
341 .\"O If the RPC library opened the associated socket, it will close it also.
342 .\"O Otherwise, the socket remains open.
343 ¤³¤Î¥Þ¥¯¥í¤Ï¥¯¥é¥¤¥¢¥ó¥È¤Î RPC ¥Ï¥ó¥É¥ë¤òÇ˲õ¤¹¤ë¡£Ç˲õ¤Ë¤ÏÄ̾ï¤Ï
345 ¼«¿È¤â´Þ¤á¤Æ»äŪ¤Ê¥Ç¡¼¥¿¹½Â¤ÂΤÎÇË´þ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£
349 ¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£
350 RPC ¥é¥¤¥Ö¥é¥ê¤¬´ØÏ¢¤¹¤ë¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤¿¾ì¹ç¤Ë¤Ï¡¢
351 ¤½¤ì¤âÊĤ¸¤é¤ì¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¥½¥±¥Ã¥È¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤Ç¤¢¤ë¡£
354 .BI "CLIENT *clnt_create(char *" host ", unsigned long " prog ,
355 .BI " unsigned long " vers ", char *" proto );
358 .\"O Generic client creation routine.
360 .\"O identifies the name of the remote host where the server is located.
362 .\"O indicates which kind of transport protocol to use.
363 .\"O The currently supported values for this field are \(lqudp\(rq
364 .\"O and \(lqtcp\(rq.
365 .\"O Default timeouts are set, but can be modified using
366 .\"O .BR clnt_control ().
367 °ìÈÌŪ¤Ê¥¯¥é¥¤¥¢¥ó¥È¤ÎºîÀ®¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£
369 ¤Ï¥µ¡¼¥Ð¤Î¤¢¤ë¥ê¥â¡¼¥È¥Û¥¹¥È¤Î̾Á°¤ò»ØÄꤹ¤ë¡£
371 ¤É¤Î¤è¤¦¤ÊÄÌ¿®¥×¥í¥È¥³¥ë¤ò»ÈÍѤ¹¤ë¤«¤ò»ØÄꤹ¤ë¡£¸½ºß¤³¤³¤Ë
372 »ÈÍѤǤ¤ëÃÍ¤Ï \(lqudp\(rq ¤È \(lqtcp\(rq ¤Ç¤¢¤ë¡£
373 ¥Ç¥Õ¥©¥ë¥È¤Î»þ´ÖÀڤ줬ÀßÄꤵ¤ì¤ë¤¬¡¢
375 ¤ò»ÈÍѤ·¤ÆÊѹ¹²Äǽ¤Ç¤¢¤ë¡£
377 .\"O Warning: Using UDP has its shortcomings.
378 .\"O Since UDP-based RPC messages can only hold up to 8 Kbytes of encoded data,
379 .\"O this transport cannot be used for procedures that take
380 .\"O large arguments or return huge results.
382 UDP ¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ë¤Ï·çÅÀ¤¬¤¢¤ë¡£
383 UDP ¤Ë´ð¤Å¤¤¤¿ RPC ¥á¥Ã¥»¡¼¥¸¤Ï
384 ºÇÂç¤Ç¤â 8 KByte ¤Î¥¨¥ó¥³¡¼¥É¥Ç¡¼¥¿¤·¤«ÊÝ»ý¤¹¤ë
385 ¤³¤È¤¬¤Ç¤¤Ê¤¤¤¿¤á¡¢Â礤ʰú¤¿ô¤äµðÂç¤Ê·ë²Ì¤ò¼è¤ë¥×¥í¥·¥¸¥ã¤Ë
386 ¤Ï»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤¡£
389 .BI "bool_t clnt_control(CLIENT *" cl ", int " req ", char *" info );
392 .\"O A macro used to change or retrieve various information
393 .\"O about a client object.
395 .\"O indicates the type of operation, and
397 .\"O is a pointer to the information.
398 .\"O For both UDP and TCP, the supported values of
400 .\"O and their argument types and what they do are:
401 ¤³¤Î¥Þ¥¯¥í¤Ï³Æ¼ï¥¯¥é¥¤¥¢¥ó¥È¤Ë¤Ä¤¤¤Æ¾ðÊó¤òÊѹ¹¤·¤¿¤ê¡¢¼èÆÀ¤·¤¿¤ê
404 ¤ÏÁàºî¤Î¼ïÎà¤ò»ØÄꤹ¤ë¡£
406 ¤Ï¾ðÊó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£
407 UDP ¤È TCP ¤É¤Á¤é¤Î¾ì¹ç¤â»ÈÍѲÄǽ¤Ê
409 ¤ÎÃͤȡ¢¤½¤Î°ú¤¿ô¤Î·¿¡¢¤ª¤è¤Ó¤½¤ÎÆâÍƤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë:
413 .ta +2.0i +2.0i +2.0i
414 .\"O \fBCLSET_TIMEOUT\fP \fIstruct timeval\fP // set total timeout
415 .\"O \fBCLGET_TIMEOUT\fP \fIstruct timeval\fP // get total timeout
416 \fBCLSET_TIMEOUT\fP \fIstruct timeval\fP // »þ´ÖÀÚ¤ì¤òÀßÄꤹ¤ë
417 \fBCLGET_TIMEOUT\fP \fIstruct timeval\fP // »þ´ÖÀÚ¤ì¤ò¼èÆÀ¤¹¤ë
421 .\"O Note: if you set the timeout using
422 .\"O .BR clnt_control (),
423 .\"O the timeout parameter passed to
424 .\"O .BR clnt_call ()
425 .\"O will be ignored in all future calls.
428 ¤ò»ÈÍѤ·¤Æ»þ´ÖÀÚ¤ì¤òÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¤½¤ì°Ê¸å¤Ï
430 ¤ËÅϤµ¤ì¤ë»þ´ÖÀÚ¤ì¥Ñ¥é¥á¡¼¥¿¡¼¤ÏÁ´¤Æ̵»ë¤µ¤ì¤ë¡£
434 .\"O \fBCLGET_SERVER_ADDR\fP \fIstruct sockaddr_in \fP // get server's address
435 \fBCLGET_SERVER_ADDR\fP \fIstruct sockaddr_in \fP // ¥µ¡¼¥Ð¥¢¥É¥ì¥¹¤ò¼èÆÀ¤¹¤ë
439 .\"O The following operations are valid for UDP only:
440 °Ê²¼¤ÎÁàºî¤Ï UDP ¤Î¾ì¹ç¤Ë¤Î¤ß͸ú¤Ç¤¢¤ë:
444 .\"O \fBCLSET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // set the retry timeout
445 .\"O \fBCLGET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // get the retry timeout
446 \fBCLSET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // ºÆÁ÷´Ö³Ö¤òÀßÄꤹ¤ë
447 \fBCLGET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // ºÆÁ÷´Ö³Ö¤ò¼èÆÀ¤¹¤ë
451 .\"O The retry timeout is the time that "UDP RPC"
452 .\"O waits for the server to reply before
453 .\"O retransmitting the request.
454 ºÆÁ÷´Ö³Ö¤Ï¼¡¤ËÍ×µá¤òºÆÁ÷¤¹¤ëÁ°¤Ë
455 "UDP RPC" ¤¬¥µ¡¼¥Ð¤Î²óÅú¤òÂԤĻþ´Ö¤Ç¤¢¤ë¡£
458 .BI "clnt_freeres(CLIENT * " clnt ", xdrproc_t " outproc ", char *" out );
461 .\"O A macro that frees any data allocated by the RPC/XDR
462 .\"O system when it decoded the results of an RPC call.
465 .\"O is the address of the results, and
467 .\"O is the XDR routine describing the results.
468 .\"O This routine returns one if the results were successfully freed,
469 .\"O and zero otherwise.
470 ¤³¤Î¥Þ¥¯¥í¤Ï RPC ¸Æ¤Ó½Ð¤·¤Î·ë²Ì¤Î¥Ç¥³¡¼¥É¤ÎºÝ¤Ë
471 RPC/XDR ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ³äÅö¤Æ¤é¤ì¤¿¥Ç¡¼¥¿¤ò²òÊü¤¹¤ë¡£
474 ¤Ï·ë²Ì¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
476 ¤Ï·ë²Ì¤òµ½Ò¤·¤Æ¤¤¤ë XDR ¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£
477 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï·ë²Ì¤Î²òÊü¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£
478 ¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£
481 .BI "void clnt_geterr(CLIENT *" clnt ", struct rpc_err *" errp );
484 .\"O A macro that copies the error structure out of the client
485 .\"O handle to the structure at address
487 ¤³¤Î¥Þ¥¯¥í¤Ï¥¯¥é¥¤¥¢¥ó¥È¡¦¥Ï¥ó¥É¥ë¤Î¥¨¥é¡¼¹½Â¤ÂΤò
489 ¥¢¥É¥ì¥¹¤Ç»ØÄꤵ¤ì¤¿¹½Â¤ÂΤإ³¥Ô¡¼¤¹¤ë¡£
492 .BI "void clnt_pcreateerror(char *" s );
495 .\"O Print a message to standard error indicating why a client RPC
496 .\"O handle could not be created.
497 .\"O The message is prepended with string
501 .\"O .BR clnt_create (),
502 .\"O .BR clntraw_create (),
503 .\"O .BR clnttcp_create (),
505 .\"O .BR clntudp_create ()
507 ɸ½à¥¨¥é¡¼½ÐÎϤˡ¢¤Ê¤¼¥¯¥é¥¤¥¢¥ó¥È RPC ¥Ï¥ó¥É¥ë¤ÎºîÀ®¤¬
508 ¤Ç¤¤Ê¤«¤Ã¤¿¤«¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£
509 ¥á¥Ã¥»¡¼¥¸¤ÎÁ°¤Ëʸ»úÎó
511 ¤È¥³¥í¥ó(:)¤¬É½¼¨¤µ¤ì¤ë¡£
513 .BR clntraw_create (),
514 .BR clnttcp_create (),
515 .BR clntudp_create ()
516 ¤Î¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿»þ¤Ë»ÈÍѤ¹¤ë¤³¤È¡£
519 .BI "void clnt_perrno(enum clnt_stat " stat );
522 .\"O Print a message to standard error corresponding
523 .\"O to the condition indicated by
529 ¤Ë¤è¤Ã¤Æ»Ø¼¨¤µ¤ì¤ë¥¨¥é¡¼¾õÂÖ¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£
534 .BI "clnt_perror(CLIENT *" clnt ", char *" s );
537 .\"O Print a message to standard error indicating why an RPC call failed;
539 .\"O is the handle used to do the call.
540 .\"O The message is prepended with string
544 .\"O .BR clnt_call ().
545 ɸ½à¥¨¥é¡¼½ÐÎϤˡ¢¤Ê¤¼ RPC ¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿¤«¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£
547 ¤Ï¥³¡¼¥ë¤Ë»ÈÍѤ·¤¿¥Ï¥ó¥É¥ë¤Ç¤¢¤ë¡£
548 ¥á¥Ã¥»¡¼¥¸¤ÎÁ°¤Ëʸ»úÎó
550 ¤È¥³¥í¥ó(:)¤¬É½¼¨¤µ¤ì¤ë¡£
552 ¤¬¼ºÇÔ¤·¤¿¸å¤Ë»ÈÍѤ¹¤ë¤³¤È¡£
555 .BI "char *clnt_spcreateerror(char *" s );
559 .\"O .BR clnt_pcreateerror (),
560 .\"O except that it returns a string instead of printing to the standard error.
561 .BR clnt_pcreateerror ()
562 ¤ÈƱÍͤǤ¢¤ë¤¬¡¢É¸½à¥¨¥é¡¼½ÐÎϤØɽ¼¨¤¹¤ë¤«¤ï¤ê¤Ëʸ»úÎó¤òÊÖ¤¹ÅÀ¤¬°Û¤Ã¤Æ¤¤¤ë¡£
564 .\"O Bugs: returns pointer to static data that is overwritten on each call.
565 ¥Ð¥°: ÀÅŪ¤ÊÎΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¤¿¤á¡¢¸Æ¤Ó½Ð¤·¤´¤È¤Ë¾å½ñ¤¤µ¤ì¤ë¡£
568 .BI "char *clnt_sperrno(enum clnt_stat " stat );
571 .\"O Take the same arguments as
572 .\"O .BR clnt_perrno (),
573 .\"O but instead of sending a message to the standard error indicating why an RPC
574 .\"O call failed, return a pointer to a string which contains the message.
575 .\"O The string ends with a NEWLINE.
577 ¤ÈƱ¤¸°ú¤¿ô¤ò¼è¤ë¤¬¡¢¤Ê¤¼
578 RPC ¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿¤«¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òɸ½à¥¨¥é¡¼½ÐÎϤËɽ¼¨¤¹¤ë
579 ¤«¤ï¤ê¤Ë¡¢¥á¥Ã¥»¡¼¥¸¤ò³ÊǼ¤·¤Æ¤¤¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£
580 ʸ»úÎó¤Ï NEWLINE(²þ¹Ô) ¤Ç½ª¤Ã¤Æ¤¤¤ë¡£
582 .\"O .BR clnt_sperrno ()
583 .\"O is used instead of
584 .\"O .BR clnt_perrno ()
585 .\"O if the program does not have a standard error (as a program
586 .\"O running as a server quite likely does not), or if the programmer
587 .\"O does not want the message to be output with
589 .\"O or if a message format different than that supported by
590 .\"O .BR clnt_perrno ()
593 .\"O .BR clnt_sperror ()
595 .\"O .BR clnt_spcreaterror (),
596 .\"O .BR clnt_sperrno ()
597 .\"O returns pointer to static data, but the
598 .\"O result will not get overwritten on each call.
600 ¤Ï¥×¥í¥°¥é¥à¤¬É¸½à¥¨¥é¡¼½ÐÎϤò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç(¥×¥í¥°¥é¥à¤¬¥µ¡¼¥Ð¤È¤·
601 ¤ÆÁö¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¤è¤¯¤¢¤ê¤¨¤ë)¤ä¡¢¥×¥í¥°¥é¥Þ¡¼¤¬¥á¥Ã¥»¡¼¥¸¤ò
603 ¤Ç½ÐÎϤ¹¤ë¤³¤È¤ò˾¤Þ¤Ê¤¤¾ì¹ç¤ä¡¢¥á¥Ã¥»¡¼¥¸¤Î·Á¼°¤¬
605 ¤¬¥µ¥Ý¡¼¥È¤¹¤ë¤â¤Î¤È¤Ï°Û¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ê¤É¤Ë
607 ¤Î¤«¤ï¤ê¤Ë»ÈÍѤµ¤ì¤ë¡£
611 .BR clnt_spcreaterror ()
614 ¤ÏÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£¤·¤«¤·¸Æ¤Ó½Ð¤·¤´¤È¤Ë¾å½ñ¤¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£
617 .BI "char *clnt_sperror(CLIENT *" rpch ", char *" s );
621 .\"O .BR clnt_perror (),
622 .\"O except that (like
623 .\"O .BR clnt_sperrno ())
624 .\"O it returns a string instead of printing to standard error.
626 ¤ÈƱÍͤǤ¢¤ë¤¬¡¢É¸½à¥¨¥é¡¼½ÐÎϤËɽ¼¨¤¹¤ëÂå¤ê¤Ë
627 .RB ( clnt_sperrno ()
628 ¤Î¤è¤¦¤Ë) ʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹ÅÀ¤¬°Û¤Ã¤Æ¤¤¤ë¡£
630 .\"O Bugs: returns pointer to static data that is overwritten on each call.
631 ¥Ð¥°: ¸Æ¤Ó½Ð¤·¤´¤È¤Ë¾å½ñ¤¤µ¤ì¤ëÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£
634 .BI "CLIENT *clntraw_create(unsigned long " prognum \
635 ", unsigned long " versnum );
638 .\"O This routine creates a toy RPC client for the remote program
642 .\"O The transport used to pass messages to the service is
643 .\"O actually a buffer within the process's address space, so the
644 .\"O corresponding RPC server should live in the same address space; see
645 .\"O .BR svcraw_create ().
646 .\"O This allows simulation of RPC and acquisition of RPC
647 .\"O overheads, such as round trip times, without any kernel interference.
648 .\"O This routine returns NULL if it fails.
649 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à
653 ¤Î¤¿¤á¤Îµ¼»÷ RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥á¥Ã¥»¡¼¥¸¤ò¥µ¡¼¥Ó¥¹¤ËÅϤ¹¤¿¤á¤Ë»ÈÍѤ¹¤ë
654 ÄÌ¿®¤Ï¼ÂºÝ¤Ë¤Ï¤½¤Î¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤¢¤ë¥Ð¥Ã¥Õ¥¡¡¼¤Ç¤¢¤ë¡£
655 ¤½¤ì¤Ç¡¢Âбþ¤¹¤ë RPC ¥µ¡¼¥Ð¤¬Æ±¤¸¥¢¥É¥ì¥¹¶õ´Ö¤ÎÃæ¤Ë¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
658 ¤³¤ì¤Ë¤è¤ê RPC ¤Î¥·¥ß¥å¥ì¡¼¥·¥ç¥ó¤ä¡¢¥«¡¼¥Í¥ë¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë±Æ¶Á¤µ¤ì¤º¤Ë
659 ±þÅú»þ´Ö¤Ê¤É¤Î RPC ¥ª¡¼¥Ð¥Ø¥Ã¥É¤Î³ÍÆÀ¤¬¤Ç¤¤ë¡£
660 ¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï NULL ¤òÊÖ¤¹¡£
663 .BI "CLIENT *clnttcp_create(struct sockaddr_in *" addr ,
664 .BI " unsigned long " prognum ", unsigned long " versnum ,
665 .BI " int *" sockp ", unsigned int " sendsz \
666 ", unsigned int " recvsz );
669 .\"O This routine creates an RPC client for the remote program
673 .\"O the client uses TCP/IP as a transport.
674 .\"O The remote program is located at Internet
677 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à
681 ¤Î¤¿¤á¤Î RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥¯¥é¥¤¥¢¥ó¥È¤ÏÄÌ¿®¤Ë
682 TCP/IP ¤ò»ÈÍѤ¹¤ë¡£¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥¢¥É¥ì¥¹¤Î
686 .\"The following inline font conversion is necessary for the hyphen indicator
687 .\"O \fIaddr\->sin_port\fR
688 .\"O is zero, then it is set to the actual port that the remote
689 .\"O program is listening on (the remote
691 .\"O service is consulted for this information).
694 .\"O is a socket; if it is
695 .\"O .BR RPC_ANYSOCK ,
696 .\"O then this routine opens a new one and sets
698 \fIaddr\->sin_port\fR ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¼ÂºÝ¤Ë¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤¬
699 listen ¤·¤Æ¤¤¤ë¥Ý¡¼¥È¤¬ÀßÄꤵ¤ì¤ë¡£(¤³¤Î¾ðÊó¤Î¤¿¤á¤Ë¥ê¥â¡¼¥È¤Î
701 ¥µ¡¼¥Ó¥¹¤¬ÍøÍѤµ¤ì¤ë¡£) ¥Ñ¥é¥á¡¼¥¿¡¼
703 ¤Ï¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£¤â¤·¤³¤ì¤¬
705 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¿·¤·¤¤¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤Æ
708 .\"O Since TCP-based RPC uses buffered I/O,
709 .\"O the user may specify the size of the send and receive buffers
710 .\"O with the parameters
714 .\"O values of zero choose suitable defaults.
715 .\"O This routine returns NULL if it fails.
716 TCP ¤Ë´ð¤Å¤¤¤¿ RPC ¤Ï¥Ð¥Ã¥Õ¥¡¤µ¤ì¤¿ I/O
717 ¤ò»ÈÍѤ¹¤ë¤¿¤á¡¢¥æ¡¼¥¶¤Ï¥Ñ¥é¥á¡¼¥¿¡¼
721 ¤ò»ÈÍѤ·¤ÆÁ÷¿®¥Ð¥Ã¥Õ¥¡¤È¼õ¿®¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤ë¡£
722 ¥¼¥í¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤ÏŬÀڤʥǥե©¥ë¥È¤¬ÁªÂò¤µ¤ì¤ë¡£
723 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£
726 .BI "CLIENT *clntudp_create(struct sockaddr_in *" addr ,
727 .BI " unsigned long " prognum ", unsigned long " versnum ,
728 .BI " struct timeval " wait ", int *" sockp );
731 .\"O This routine creates an RPC client for the remote program
735 .\"O the client uses use UDP/IP as a transport.
736 .\"O The remote program is located at Internet address
738 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à
742 ¤Î¤¿¤á¤Î RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥¯¥é¥¤¥¢¥ó¥È¤ÏÄÌ¿®¤Ë
743 UDP/IP ¤ò»ÈÍѤ¹¤ë¡£¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥¢¥É¥ì¥¹¤Î
747 .\"O \fIaddr\->sin_port\fR
748 .\"O is zero, then it is set to actual port that the remote
749 .\"O program is listening on (the remote
751 .\"O service is consulted for this information).
754 .\"O is a socket; if it is
755 .\"O .BR RPC_ANYSOCK ,
756 .\"O then this routine opens a new one and sets
758 \fIaddr\->sin_port\fR ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¼ÂºÝ¤Ë¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤¬
759 listen ¤·¤Æ¤¤¤ë¥Ý¡¼¥È¤¬ÀßÄꤵ¤ì¤ë¡£(¤³¤Î¾ðÊó¤Î¤¿¤á¤Ë¥ê¥â¡¼¥È¤Î
761 ¥µ¡¼¥Ó¥¹¤¬ÍøÍѤµ¤ì¤ë¡£) ¥Ñ¥é¥á¡¼¥¿¡¼
763 ¤Ï¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£¤â¤·¤³¤ì¤¬
765 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¿·¤·¤¤¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤Æ
768 .\"O The UDP transport resends the call message in intervals of
770 .\"O time until a response is received or until the call times out.
771 .\"O The total time for the call to time out is specified by
772 .\"O .BR clnt_call ().
773 UDP ÄÌ¿®¤Ï²óÅú¤¬¤¢¤ë¤«¡¢»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç
775 ´Ö³Ö¤Ç¸Æ¤Ó½Ð¤·¥á¥Ã¥»¡¼¥¸¤òºÆÁ÷¤¹¤ë¡£»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç¤Î¹ç·×»þ´Ö¤Ï
779 .\"O Warning: since UDP-based RPC messages can only hold up to 8 Kbytes
780 .\"O of encoded data, this transport cannot be used for procedures
781 .\"O that take large arguments or return huge results.
783 RPC ¥á¥Ã¥»¡¼¥¸¤ÏºÇÂç¤Ç¤â 8 Kbyte ¤Þ¤Ç¤Î¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿¥Ç¡¼¥¿¤·¤«
784 ÊÝ»ý¤Ç¤¤Ê¤¤¤¿¤á¡¢¤³¤ÎÄÌ¿®¤ÏÂ礤ʰú¤¿ô¤äµðÂç¤Ê·ë²Ì¤ò¼è¤ë
785 ¥×¥í¥·¥¸¥ã¤Ë¤Ï»ÈÍѤǤ¤Ê¤¤¡£
788 .BI "CLIENT *clntudp_bufcreate(struct sockaddr_in *" addr ,
789 .BI " unsigned long " prognum ", unsigned long " versnum ,
790 .BI " struct timeval " wait ", int *" sockp ,
791 .BI " unsigned int " sendsize ", unsigned int "recosize );
794 .\"O This routine creates an RPC client for the remote program
798 .\"O the client uses use UDP/IP as a transport.
799 .\"O The remote program is located at Internet address
801 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à
805 ¤Î¤¿¤á¤Î RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥¯¥é¥¤¥¢¥ó¥È¤ÏÄÌ¿®¤Ë
806 UDP/IP ¤ò»ÈÍѤ¹¤ë¡£¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥¢¥É¥ì¥¹¤Î
810 .\"O \fIaddr\->sin_port\fR
811 .\"O is zero, then it is set to actual port that the remote
812 .\"O program is listening on (the remote
814 .\"O service is consulted for this information).
817 .\"O is a socket; if it is
818 .\"O .BR RPC_ANYSOCK ,
819 .\"O then this routine opens a new one and sets
821 \fIaddr\->sin_port\fR ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¼ÂºÝ¤Ë¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤¬
822 listen ¤·¤Æ¤¤¤ë¥Ý¡¼¥È¤¬ÀßÄꤵ¤ì¤ë¡£(¤³¤Î¾ðÊó¤Î¤¿¤á¤Ë¥ê¥â¡¼¥È¤Î
824 ¥µ¡¼¥Ó¥¹¤¬ÍøÍѤµ¤ì¤ë¡£) ¥Ñ¥é¥á¡¼¥¿¡¼
826 ¤Ï¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£¤â¤·¤³¤ì¤¬
828 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¿·¤·¤¤¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤Æ
831 .\"O The UDP transport resends the call message in intervals of
833 .\"O time until a response is received or until the call times out.
834 .\"O The total time for the call to time out is specified by
835 .\"O .BR clnt_call ().
836 UDP ÄÌ¿®¤Ï²óÅú¤¬¤¢¤ë¤«¡¢»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç
838 ´Ö³Ö¤Ç¸Æ¤Ó½Ð¤·¥á¥Ã¥»¡¼¥¸¤òºÆÁ÷¤¹¤ë¡£»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç¤Î¹ç·×»þ´Ö¤Ï
842 .\"O This allows the user to specify the maximum packet
843 .\"O size for sending and receiving UDP-based RPC messages.
844 ¤³¤ì¤ò»ÈÍѤ¹¤ë¤È UDP ¤Ë´ð¤Å¤¤¤¿ RPC ¥á¥Ã¥»¡¼¥¸¤Ë¤ª¤¤¤ÆÁ÷¿®¥Ñ¥±¥Ã¥È¤ä
845 ¼õ¿®¥Ñ¥±¥Ã¥È¤ÎºÇÂ祵¥¤¥º¤ò»ØÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£
848 .BI "void get_myaddress(struct sockaddr_in *" addr );
851 .\"O Stuff the machine's IP address into
853 .\"O without consulting the library routines that deal with
854 .\"O .IR /etc/hosts .
855 .\"O The port number is always set to
856 .\"O .BR htons(PMAPPORT) .
857 ¤³¤Î¥Þ¥·¥ó¤Î IP ¥¢¥É¥ì¥¹¤ò
861 ¤ò°·¤¦¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Æ¥£¥ó¤Ï»ÈÍѤ·¤Ê¤¤¡£¥Ý¡¼¥ÈÈÖ¹æ¤Ï¾ï¤Ë
866 .BI "struct pmaplist *pmap_getmaps(struct sockaddr_in *" addr );
869 .\"O A user interface to the
871 .\"O service, which returns a list of the current RPC
872 .\"O program-to-port mappings on the host located at IP address
874 .\"O This routine can return NULL.
876 .\"O .IR "rpcinfo\ \-p"
877 .\"O uses this routine.
879 ¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ê¡¢
882 ¤Ë¤¢¤ë¥Û¥¹¥È¤Î¸½ºß¤Î RPC ¥×¥í¥°¥é¥à¤«¤é¥Ý¡¼¥ÈÈÖ¹æ¤Ø¤Î¥Þ¥Ã¥Ô¥ó¥°¤Î°ìÍ÷¤òÊÖ¤¹¡£
883 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬ NULL ¤òÊÖ¤¹¾ì¹ç¤â¤¢¤ë¡£
884 .RB ` "rpcinfo \-p" '
885 ¥³¥Þ¥ó¥É¤Ï¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£
888 .BI "unsigned short pmap_getport(struct sockaddr_in *" addr ,
889 .BI " unsigned long " prognum ", unsigned long " versnum ,
890 .BI " unsigned int " protocol );
893 .\"O A user interface to the
895 .\"O service, which returns the port number
896 .\"O on which waits a service that supports program number
900 .\"O and speaks the transport protocol associated with
903 ¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢
908 ´ØÏ¢ÉÕ¤±¤é¤ì¤¿ÄÌ¿®¥×¥í¥È¥³¥ë
910 ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥µ¡¼¥Ó¥¹¤¬ÂԤäƤ¤¤ë¥Ý¡¼¥ÈÈÖ¹æ¤òÊÖ¤¹¡£
916 .\"O .BR IPPROTO_TCP .
917 .\"O A return value of zero means that the mapping does not exist
918 .\"O or that the RPC system failed to contact the remote
921 .\"O In the latter case, the global variable
922 .\"O .I rpc_createerr
923 .\"O contains the RPC status.
925 ¤ÎÃͤϤۤȤó¤É¤Î¾ì¹ç IPPROTO_UDP ¤« IPPROTO_TCP ¤Ç¤¢¤ë¡£
926 ÊÖ¤êÃÍ¥¼¥í¤Ï¥Þ¥Ã¥Ô¥ó¥°¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢
927 RPC ¥·¥¹¥Æ¥à¤¬¥ê¥â¡¼¥È¤Î
929 ¥µ¡¼¥Ó¥¹¤Î»²¾È¤Ë¼ºÇÔ¤·¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£¸å¼Ô¤Î¾ì¹ç¤ÏÂç°èÊÑ¿ô
931 ¤¬ RPC ¾õÂÖ¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£
934 .BI "enum clnt_stat pmap_rmtcall(struct sockaddr_in *" addr ,
935 .BI " unsigned long " prognum ", unsigned long " versnum ,
936 .BI " unsigned long " procnum ,
937 .BI " xdrproc_t " inproc ", char *" in ,
938 .BI " xdrproc_t " outproc ", char *" out ,
939 .BI " struct timeval " tout ", unsigned long *" portp );
942 .\"O A user interface to the
944 .\"O service, which instructs
946 .\"O on the host at IP address
948 .\"O to make an RPC call on your behalf to a procedure on that host.
950 ¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢
956 RPC ¸Æ¤Ó½Ð¤·¤òÀ¸À®¤·¡¢¤½¤Î¥Û¥¹¥È¾å¤Î¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£
959 .\"O will be modified to the program's port number if the procedure succeeds.
960 .\"O The definitions of other parameters are discussed
964 .\"O .BR clnt_call ().
965 .\"O This procedure should be used for a \(lqping\(rq and nothing else.
967 .\"O .BR clnt_broadcast ().
970 ¤Ï¥×¥í¥·¥¸¥ã¤¬À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥×¥í¥°¥é¥à¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ë½¤Àµ¤µ¤ì¤ë¡£
971 ¾¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ÎÄêµÁ¤Ë¤Ä¤¤¤Æ¤Ï
976 ¤³¤Î¥×¥í¥·¥¸¥ã¤Ï \(lqping\(rq ¤Î¤ß¤Ë»ÈÍѤ¹¤Ù¤¤Ç¤¢¤ë¡£
977 .BR clnt_broadcast ()
981 .BI "bool_t pmap_set(unsigned long " prognum ", unsigned long " versnum ,
982 .BI " unsigned int " protocol ", unsigned short " port );
985 .\"O A user interface to the
987 .\"O service, which establishes a mapping between the triple
988 .\"O .RI [ prognum , versnum , protocol\fR]
991 .\"O on the machine's
999 .\"O .BR IPPROTO_TCP .
1000 .\"O This routine returns one if it succeeds, zero otherwise.
1001 .\"O Automatically done by
1002 .\"O .BR svc_register ().
1004 ¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢
1005 .RI [ prognum , versnum , protocol\fR]
1008 ¤È¤Î´Ö¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¡¢¤½¤Î¥Þ¥·¥ó¾å¤Î
1010 ¥µ¡¼¥Ó¥¹¤ËÅÐÏ¿¤¹¤ë¡£
1017 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£
1019 ¤Ë¤è¤Ã¤Æ¼«Æ°Åª¤Ë¼Â¹Ô¤µ¤ì¤ë¡£
1022 .BI "bool_t pmap_unset(unsigned long " prognum ", unsigned long " versnum );
1025 .\"O A user interface to the
1027 .\"O service, which destroys all mapping between the triple
1028 .\"O .RI [ prognum , versnum , *\fR]
1031 .\"O on the machine's
1034 .\"O This routine returns one if it succeeds, zero otherwise.
1036 ¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢
1037 .RI [ prognum , versnum , *\fR]
1040 ¤Î´Ö¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¤½¤Î¥Þ¥·¥ó¾å¤Î
1042 ¥µ¡¼¥Ó¥¹¤«¤éºï½ü¤¹¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£
1043 ¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£
1046 .BI "int registerrpc(unsigned long " prognum ", unsigned long " versnum ,
1047 .BI " unsigned long " procnum ", char *(*" procname ")(char *),"
1048 .BI " xdrproc_t " inproc ", xdrproc_t " outproc );
1051 .\"O Register procedure
1053 .\"O with the RPC service package.
1054 .\"O If a request arrives for program
1061 .\"O is called with a pointer to its parameter(s);
1063 .\"O should return a pointer to its static result(s);
1065 .\"O is used to decode the parameters while
1067 .\"O is used to encode the results.
1068 .\"O This routine returns zero if the registration succeeded, \-1 otherwise.
1069 RPC ¥µ¡¼¥Ó¥¹¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ·¤Æ
1071 ¥×¥í¥·¥¸¥ã¤òÅÐÏ¿¤¹¤ë¡£¥×¥í¥°¥é¥à
1077 ¤Ø¤ÎÍ׵᤬ÆϤ¤¤¿¾ì¹ç¡¢
1079 ¤¬¥Ñ¥é¥á¡¼¥¿¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤ò»ý¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1081 ¤ÏÀÅŪ¤Ê·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹É¬Íפ¬¤¢¤ë¡£
1083 ¤Ï¥Ñ¥é¥á¡¼¥¿¡¼¤ò¥Ç¥³¡¼¥É¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£
1085 ¤Ï·ë²Ì¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£
1086 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÅÐÏ¿¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£
1087 ¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤¹¡£
1089 .\"O Warning: remote procedures registered in this form
1090 .\"O are accessed using the UDP/IP transport; see
1091 .\"O .BR svcudp_create ()
1092 .\"O for restrictions.
1093 ·Ù¹ð: ¤³¤Î·Á¼°¤ÇÅÐÏ¿¤µ¤ì¤¿¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤Ï
1094 UDP/IP ÄÌ¿®¤ò»ÈÍѤ¹¤ë¡£À©¸Â¤Ë´Ø¤·¤Æ¤Ï
1095 .BR svcudp_create ()
1099 .BI "struct rpc_createerr " rpc_createerr ;
1102 .\"O A global variable whose value is set by any RPC client creation routine
1103 .\"O that does not succeed.
1104 .\"O Use the routine
1105 .\"O .BR clnt_pcreateerror ()
1106 .\"O to print the reason why.
1107 À®¸ù¤·¤Ê¤«¤Ã¤¿ RPC ¥¯¥é¥¤¥¢¥ó¥ÈÀ¸À®¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤ÆÀßÄꤵ¤ì¤ëÂç°èÊÑ¿ô¡£
1108 .BR clnt_pcreateerror ()
1109 ¥ë¡¼¥Æ¥£¥ó¤¬Íýͳ¤òɽ¼¨¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£
1112 .BI "void svc_destroy(SVCXPRT *" xprt );
1115 .\"O A macro that destroys the RPC service transport handle,
1117 .\"O Destruction usually involves deallocation
1118 .\"O of private data structures, including
1123 .\"O is undefined after calling this routine.
1124 ¤³¤Î¥Þ¥¯¥í¤ÏÄÌ¿®¥Ï¥ó¥É¥ë
1126 ¤Î RPC ¥µ¡¼¥Ó¥¹¤òÇ˲õ¤¹¤ë¡£Ç˲õ¤Ë¤ÏÄ̾
1128 ¤ò´Þ¤á¤Æ¡¢»äŪ¤Ê¥Ç¡¼¥¿¹½Â¤ÂΤÎÇË´þ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£
1129 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ë
1131 ¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£
1134 .BI "fd_set " svc_fdset ;
1137 .\"O A global variable reflecting the RPC service side's
1138 .\"O read file descriptor bit mask; it is suitable as a parameter to the
1141 .\"O This is only of interest if a service implementor does not call
1142 .\"O .BR svc_run (),
1143 .\"O but rather does his own asynchronous event processing.
1144 .\"O This variable is read-only (do not pass its address to
1145 .\"O .BR select (2)!),
1146 .\"O yet it may change after calls to
1147 .\"O .BR svc_getreqset ()
1148 .\"O or any creation routines.
1149 RPC ¥µ¡¼¥Ó¥¹Â¦¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤òÈ¿±Ç¤·¤¿Âç°èÊÑ¿ô¡£
1151 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤Î¤¿¤á¤ËÍøÍѤǤ¤ë¡£¤³¤ì¤Ï
1154 ¤ò¸Æ¤Ó½Ð¤µ¤Ê¤º¤Ë¡¢Æȼ«¤ÎÈóƱ´ü¥¤¥Ù¥ó¥È½èÍý¤òÍѤ¤¤ë¾ì¹ç¤Ë¤Î¤ß°ÕÌ£¤¬¤¢¤ë¡£
1155 ¤³¤ÎÊÑ¿ô¤ÏÆɤ߹þ¤ßÀìÍÑ¤Ç (¤½¤Î¤Þ¤Þ
1157 ¤ØÅϤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤!)¡¢
1158 .BR svc_getreqset ()
1159 ¸Æ¤Ó½Ð¤·¤äÀ¸À®¥ë¡¼¥Æ¥£¥ó¤Î¸å¤ËÊѹ¹¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
1162 .BI "int " svc_fds ;
1166 .\"O .BR svc_fdset ,
1167 .\"O but limited to 32 descriptors.
1168 .\"O This interface is obsoleted by
1169 .\"O .BR svc_fdset .
1171 ¤Ë»÷¤Æ¤¤¤ë¤¬¡¢32 ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£
1172 ¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï
1174 ¤Ë¤è¤Ã¤ÆÃÖ¤´¹¤¨¤é¤ì¤¿¡£
1177 .BI "svc_freeargs(SVCXPRT *" xprt ", xdrproc_t " inproc ", char *" in );
1180 .\"O A macro that frees any data allocated by the RPC/XDR
1181 .\"O system when it decoded the arguments to a service procedure using
1182 .\"O .BR svc_getargs ().
1183 .\"O This routine returns 1 if the results were successfully
1185 .\"O and zero otherwise.
1186 ¤³¤Î¥Þ¥¯¥í¤Ï¥µ¡¼¥Ó¥¹¡¦¥×¥í¥·¥¸¥ã¤¬
1188 ¤ò»ÈÍѤ·¤Æ°ú¤¿ô¤ò¥Ç¥³¡¼¥É¤·¤¿»þ¤Ë
1189 RPC/XDR ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ³ä¤êÅö¤Æ¤é¤ì¤¿¥Ç¡¼¥¿¤ò²òÊü¤¹¤ë¡£
1190 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï²òÊü¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£
1191 ¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£
1194 .BI "svc_getargs(SVCXPRT *" xprt ", xdrproc_t " inproc ", char *" in );
1197 .\"O A macro that decodes the arguments of an RPC request
1198 .\"O associated with the RPC service transport handle,
1202 .\"O is the address where the arguments will be placed;
1204 .\"O is the XDR routine used to decode the arguments.
1205 .\"O This routine returns one if decoding succeeds, and zero otherwise.
1206 ¤³¤Î¥Þ¥¯¥í¤Ï RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë
1208 ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ RPC Í×µá¤Î°ú¤¿ô¤ò¥Ç¥³¡¼¥É¤¹¤ë¡£¥Ñ¥é¥á¡¼¥¿¡¼
1210 ¤Ï°ú¤¿ô¤Î³ÊǼ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
1212 ¤Ï°ú¤¿ô¤ò¥Ç¥³¡¼¥É¤¹¤ë¤¿¤á¤Î XDR ¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£
1213 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥Ç¥³¡¼¥É¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£
1214 ¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£
1217 .BI "struct sockaddr_in *svc_getcaller(SVCXPRT *" xprt );
1220 .\"O The approved way of getting the network address of the caller
1221 .\"O of a procedure associated with the RPC service transport handle,
1223 RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë
1225 ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥×¥í¥·¥¸¥ã¤Î¸Æ¤Ó½Ð¤·¸µ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥¢¥É¥ì¥¹¤ò
1226 ¼èÆÀ¤¹¤ë¤¿¤á¤Îɸ½àŪ¤Ê¼êÃÊ¡£
1229 .BI "void svc_getreqset(fd_set *" rdfds );
1232 .\"O This routine is only of interest if a service implementor does not call
1233 .\"O .BR svc_run (),
1234 .\"O but instead implements custom asynchronous event processing.
1235 .\"O It is called when the
1237 .\"O system call has determined that an RPC request has arrived on some
1240 .\"O is the resultant read file descriptor bit mask.
1241 .\"O The routine returns when all sockets associated with the value of
1243 .\"O have been serviced.
1244 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¼Ô¤¬
1246 ¤ò¸Æ¤Ó½Ð¤µ¤º¡¢Æȼ«¤ÎÈóƱ´ü¥¤¥Ù¥ó¥È½èÍý¤ò¼ÂÁõ¤¹¤ë¾ì¹ç¤Ë¤Î¤ß°ÕÌ£¤¬¤¢¤ë¡£
1249 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ RPC ¥½¥±¥Ã¥È¤Ë
1250 RPC Í׵᤬ÅþÃ夷¤¿¤ÈÊÖ¤·¤¿¾ì¹ç¤Ë¤Î¤ß¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1252 ¤Ï·ë²Ì¤ÎÆɤ߹þ¤ß¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£
1255 ¤ÎÃͤ˴ØÏ¢ÉÕ¤±¤é¤ì¤¿Á´¤Æ¤Î¥½¥±¥Ã¥È¤Î¥µ¡¼¥Ó¥¹¤¬¹Ô¤Ê¤ï¤ì¤¿»þ¤Ë
1259 .BI "void svc_getreq(int " rdfds );
1263 .\"O .BR svc_getreqset (),
1264 .\"O but limited to 32 descriptors.
1265 .\"O This interface is obsoleted by
1266 .\"O .BR svc_getreqset ().
1267 .BR svc_getreqset ()
1268 ¤Ë»÷¤Æ¤¤¤ë¤¬¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¿ô¤¬ 32 ¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£
1269 ¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï
1270 .BR svc_getreqset ()
1271 ¤Ë¤è¤Ã¤ÆÃÖ¤´¹¤¨¤é¤ì¤¿¡£
1274 .BI "bool_t svc_register(SVCXPRT *" xprt ", unsigned long " prognum ,
1275 .BI " unsigned long " versnum ,
1276 .BI " void (*" dispatch ")(svc_req *, SVCXPRT *),"
1277 .BI " unsigned long " protocol );
1284 .\"O with the service dispatch procedure,
1289 ¤ò¥µ¡¼¥Ó¥¹ÇÛʬ¥×¥í¥·¥¸¥ã
1294 .\"O is zero, the service is not registered with the
1299 .\"O is nonzero, then a mapping of the triple
1300 .\"O .RI [ prognum , versnum , protocol\fR]
1302 .\"O \fIxprt\->xp_port\fR
1303 .\"O is established with the local
1305 .\"O service (generally
1310 .\"O .BR IPPROTO_TCP ).
1312 ¤¬¥¼¥í¤Î¾ì¹ç¡¢¥µ¡¼¥Ó¥¹¤Ï
1314 ¥µ¡¼¥Ó¥¹¤Ë¤ÏÅÐÏ¿¤µ¤ì¤Ê¤¤¡£
1317 .RI [ prognum , versnum , protocol\fR]
1318 ¤ÎÁȤ߹ç¤ï¤»¤È \fIxprt\->xp_port\fR ¤È¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬¥í¡¼¥«¥ë¤Î
1320 ¥µ¡¼¥Ó¥¹¤ËÅÐÏ¿¤µ¤ì¤ë¡£(°ìÈÌŪ¤Ë
1328 .\"O has the following form:
1335 dispatch(struct svc_req *request, SVCXPRT *xprt);
1340 .\"O .BR svc_register ()
1341 .\"O routine returns one if it succeeds, and zero otherwise.
1343 ¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£
1346 .B "void svc_run(void);"
1349 .\"O This routine never returns.
1350 .\"O It waits for RPC requests to arrive, and calls the appropriate service
1351 .\"O procedure using
1352 .\"O .BR svc_getreq ()
1353 .\"O when one arrives.
1354 .\"O This procedure is usually waiting for a
1356 .\"O system call to return.
1357 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÌá¤Ã¤Æ¤³¤Ê¤¤¡£¤³¤ì¤Ï
1359 Í×µá¤ÎÅþÃå¤òÂÔ¤Á¡¢¤É¤ì¤«¤¬ÆϤ¤¤¿¾ì¹ç¤Ë
1361 ¤ò»ÈÍѤ·¤ÆŬÀڤʥµ¡¼¥Ó¥¹¡¦¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£
1362 ¤³¤Î¥×¥í¥·¥¸¥ã¤ÏÄ̾ï¤Ï
1364 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤«¤éÊÖ¤ë¤Î¤òÂԤäƤ¤¤ë¡£
1367 .BI "bool_t svc_sendreply(SVCXPRT *" xprt ", xdrproc_t " outproc \
1371 .\"O Called by an RPC service's dispatch routine to send the results of a
1372 .\"O remote procedure call.
1375 .\"O is the request's associated transport handle;
1377 .\"O is the XDR routine which is used to encode the results; and
1379 .\"O is the address of the results.
1380 .\"O This routine returns one if it succeeds, zero otherwise.
1381 RPC ¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Î·ë²Ì¤ò
1382 ÊÖ¤¹¤¿¤á¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1385 ¤Ï¤½¤ÎÍ×µá¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ÄÌ¿®¥Ï¥ó¥É¥ë¤Ç¤¢¤ë¡£
1387 ¤Ï·ë²Ì¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë XDR ¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£
1389 ¤Ï·ë²Ì¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£
1390 ¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£
1393 .BI "void svc_unregister(unsigned long " prognum ", unsigned long " versnum );
1396 .\"O Remove all mapping of the double
1397 .\"O .RI [ prognum , versnum ]
1398 .\"O to dispatch routines, and of the triple
1399 .\"O .RI [ prognum , versnum , *\fR]
1400 .\"O to port number.
1402 .RI [ prognum , versnum ]
1404 .RI [ prognum , versnum , *\fR]
1405 ¤ÎÁȤ߹ç¤ï¤»¤«¤é¥Ý¡¼¥ÈÈÖ¹æ¤Ø¤Î¥Þ¥Ã¥Ô¥ó¥°¤òÁ´¤Æºï½ü¤¹¤ë¡£
1408 .BI "void svcerr_auth(SVCXPRT *" xprt ", enum auth_stat " why );
1411 .\"O Called by a service dispatch routine that refuses to perform
1412 .\"O a remote procedure call due to an authentication error.
1413 ǧ¾Ú¥¨¥é¡¼¤Ë¤è¤ê¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Î¼Â¹Ô¤òµñÈݤµ¤ì¤¿
1414 ¾ì¹ç¤Ë¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1417 .BI "void svcerr_decode(SVCXPRT *" xprt );
1420 .\"O Called by a service dispatch routine that cannot successfully
1421 .\"O decode its parameters.
1423 .\"O .BR svc_getargs ().
1424 ¥Ñ¥é¥á¡¼¥¿¤Î¥Ç¥³¡¼¥É¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë
1425 ¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1430 .BI "void svcerr_noproc(SVCXPRT *" xprt );
1433 .\"O Called by a service dispatch routine that does not implement
1434 .\"O the procedure number that the caller requests.
1435 Í×µá¤Î¤¢¤Ã¤¿¥×¥í¥·¥¸¥ãÈֹ椬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë
1436 ¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤è¤ê¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1439 .BI "void svcerr_noprog(SVCXPRT *" xprt );
1442 .\"O Called when the desired program is not registered with the RPC package.
1443 .\"O Service implementors usually do not need this routine.
1444 RPC ¥Ñ¥Ã¥±¡¼¥¸¤ËÍ׵ᤵ¤ì¤¿¥×¥í¥°¥é¥à¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1445 ¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¤Ë¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£
1448 .BI "void svcerr_progvers(SVCXPRT *" xprt );
1451 .\"O Called when the desired version of a program is not registered
1452 .\"O with the RPC package.
1453 .\"O Service implementors usually do not need this routine.
1454 RPC ¥Ñ¥Ã¥±¡¼¥¸¤ËÍ׵ᤵ¤ì¤¿¥Ð¡¼¥¸¥ç¥ó¤Î¥×¥í¥°¥é¥à¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë
1455 ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¤Ë¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£
1458 .BI "void svcerr_systemerr(SVCXPRT *" xprt );
1461 .\"O Called by a service dispatch routine when it detects a system
1462 .\"O error not covered by any particular protocol.
1463 .\"O For example, if a service can no longer allocate storage,
1464 .\"O it may call this routine.
1465 ÆÃÄê¤Î¥×¥í¥È¥³¥ë¤Ë¤è¤Ã¤Æ¥«¥Ð¡¼¤µ¤ì¤Æ¤¤¤Ê¥·¥¹¥Æ¥à¡¦¥¨¥é¡¼¤¬
1466 ¸¡½Ð¤µ¤ì¤¿¾ì¹ç¤Ë¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1467 Î㤨¤Ð¡¢¥µ¡¼¥Ó¥¹¤¬¤½¤ì°Ê¾å¡¢µ²±ÁõÃÖ¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤¾ì¹ç¤Ë¤Ï
1468 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
1471 .BI "void svcerr_weakauth(SVCXPRT *" xprt );
1474 .\"O Called by a service dispatch routine that refuses to perform
1475 .\"O a remote procedure call due to insufficient authentication parameters.
1476 .\"O The routine calls
1477 .\"O .BR "svcerr_auth(xprt, AUTH_TOOWEAK)" .
1478 ǧ¾Ú¥Ñ¥é¥á¡¼¥¿¤¬Â¤ê¤Ê¤¤¤¿¤á¤Ë¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Î¼Â¹Ô¤ò
1479 µñÈݤµ¤ì¤¿¾ì¹ç¤Ë¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1481 .B "svcerr_auth(xprt, AUTH_TOOWEAK)"
1485 .BI "SVCXPRT *svcfd_create(int " fd ", unsigned int " sendsize ,
1486 .BI " unsigned int " recvsize );
1489 .\"O Create a service on top of any open descriptor.
1490 .\"O Typically, this descriptor is a connected socket for a stream protocol such
1495 .\"O indicate sizes for the send and receive buffers.
1496 .\"O If they are zero, a reasonable default is chosen.
1497 Ǥ°Õ¤Î¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¾å¤Ë¥µ¡¼¥Ó¥¹¤òºîÀ®¤¹¤ë¡£
1498 ŵ·¿Åª¤Ë¡¢¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ï
1499 TCP ¤Î¤è¤¦¤Ê¥¹¥È¥ê¡¼¥à¡¦¥×¥í¥È¥³¥ë¤ÇÀܳ¤µ¤ì¤¿¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£
1503 ¤Ë¤ÏÁ÷¿®¥Ð¥Ã¥Õ¥¡¤È¼õ¿®¥Ð¥Ã¥Õ¥¡¤ÎÂ礤µ¤ò»ØÄꤹ¤ë¡£¤â¤·¥¼¥í¤¬»ØÄꤵ¤ì¤¿
1504 ¾ì¹ç¤ÏŬÀڤʥǥե©¥ë¥È¤¬ÁªÂò¤µ¤ì¤ë¡£
1507 .BI "SVCXPRT *svcraw_create(void);"
1510 .\"O This routine creates a toy RPC
1511 .\"O service transport, to which it returns a pointer.
1512 .\"O The transport is really a buffer within the process's address space,
1513 .\"O so the corresponding RPC client should live in the same address space; see
1514 .\"O .BR clntraw_create ().
1515 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ïµ¼»÷ RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¤òÀ¸À®¤·¤Æ¡¢¤½¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£
1516 ÄÌ¿®¤Ï¼ÂºÝ¤Ë¤Ï¤½¤Î¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤¢¤ë¥Ð¥Ã¥Õ¥¡¤Ê¤Î¤Ç
1517 Âбþ¤¹¤ë RPC ¥¯¥é¥¤¥¢¥ó¥È¤ÏƱ¤¸¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤¤¤ëɬÍפ¬¤¢¤ë¡£
1518 .BR clntraw_create ()
1520 .\"O This routine allows simulation of RPC and acquisition of RPC
1521 .\"O overheads (such as round trip times), without any kernel interference.
1522 .\"O This routine returns NULL if it fails.
1524 RPC ¤Î¥·¥ß¥å¥ì¡¼¥·¥ç¥ó¤ä¡¢¥«¡¼¥Í¥ë¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë±Æ¶Á¤µ¤ì¤º¤Ë±þÅú»þ´Ö¤Ê¤É¤Î
1525 RPC ¥ª¡¼¥Ð¥Ø¥Ã¥É¤ò¼èÆÀ¤¬¤Ç¤¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£
1528 .BI "SVCXPRT *svctcp_create(int " sock ", unsigned int " send_buf_size ,
1529 .BI " unsigned int " recv_buf_size );
1532 .\"O This routine creates a TCP/IP-based RPC
1533 .\"O service transport, to which it returns a pointer.
1534 .\"O The transport is associated with the socket
1537 .\"O .BR RPC_ANYSOCK ,
1538 .\"O in which case a new socket is created.
1539 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï TCP/IP ¤Ë´ð¤Å¤¯
1540 RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¤òºîÀ®¤·¡¢¤½¤ì¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£
1547 ¤Ç¤âÎɤ¤¡£¤³¤Î¾ì¹ç¤Ï¿·¤·¤¤¥½¥±¥Ã¥È¤¬ºîÀ®¤µ¤ì¤ë¡£
1548 .\"O If the socket is not bound to a local TCP
1549 .\"O port, then this routine binds it to an arbitrary port.
1550 .\"O Upon completion,
1551 .\"O \fIxprt\->xp_sock\fR
1552 .\"O is the transport's socket descriptor, and
1553 .\"O \fIxprt\->xp_port\fR
1554 .\"O is the transport's port number.
1555 ¤â¤·¥½¥±¥Ã¥È¤¬¥í¡¼¥«¥ë¤Ê TCP ¥Ý¡¼¥È¤Ë bind ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢
1556 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬Å¬Åö¤Ê¥Ý¡¼¥È¤Ë bind ¤¹¤ë¡£
1557 Êä´°¤µ¤ì¤¿¾ì¹ç¡¢\fIxprt\->xp_sock\fR ¤Ë¤ÏÄÌ¿®¤Î¥½¥±¥Ã¥È¡¦
1558 ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¡¢\fIxprt\->xp_port\fR ¤Ë¤ÏÄÌ¿®¤Î¥Ý¡¼¥ÈÈֹ椬
1560 .\"O This routine returns NULL if it fails.
1561 .\"O Since TCP-based RPC uses buffered I/O,
1562 .\"O users may specify the size of buffers; values of zero
1563 .\"O choose suitable defaults.
1564 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£
1565 TCP ¤Ë´ð¤Å¤¤¤¿ RPC ¤Ï¥Ð¥Ã¥Õ¥¡¤µ¤ì¤¿ I/O ¤ò»ÈÍѤ¹¤ë¤¿¤á¡¢
1566 ¥æ¡¼¥¶¤Ï¥Ð¥Ã¥Õ¥¡¤ÎÂ礤µ¤ò»ØÄê¤Ç¤¤ë¡£
1567 ¥¼¥í¤ò»ØÄꤷ¤¿¾ì¹ç¤ÏŬÀڤʥǥե©¥ë¥È¤¬ÁªÂò¤µ¤ì¤ë¡£
1570 .BI "SVCXPRT *svcudp_bufcreate(int " sock ", unsigned int " sendsize ,
1571 .BI " unsigned int " recosize );
1574 .\"O This routine creates a UDP/IP-based RPC
1575 .\"O service transport, to which it returns a pointer.
1576 .\"O The transport is associated with the socket
1579 .\"O .BR RPC_ANYSOCK ,
1580 .\"O in which case a new socket is created.
1581 .\"O If the socket is not bound to a local UDP
1582 .\"O port, then this routine binds it to an arbitrary port.
1583 .\"O Upon completion,
1584 .\"O \fIxprt\->xp_sock\fR
1585 .\"O is the transport's socket descriptor, and
1586 .\"O \fIxprt\->xp_port\fR
1587 .\"O is the transport's port number.
1588 .\"O This routine returns NULL if it fails.
1589 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï UDP/IP ¤Ë´ð¤Å¤¤¤¿ RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¤òºîÀ®¤·¡¢
1590 ¤½¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ÄÌ¿®¤Ï¥½¥±¥Ã¥È
1596 ¤Ç¤âÎɤ¤¡£¤³¤Î¾ì¹ç¤Ï¿·¤·¤¤¥½¥±¥Ã¥È¤¬ºîÀ®¤µ¤ì¤ë¡£
1597 ¥½¥±¥Ã¥È¤¬¥í¡¼¥«¥ë¤Î UDP ¥Ý¡¼¥È¤Ë bind ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï
1598 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏŬÅö¤Ê¥Ý¡¼¥È¤Ë bind ¤¹¤ë¡£
1599 Êä´°¤µ¤ì¤¿¾ì¹ç¡¢\fIxprt\->xp_sock\fR ¤ËÄÌ¿®¤Î¥½¥±¥Ã¥È¤Î
1600 ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¡¢\fIxprt\->xp_port\fR ¤ËÄÌ¿®¤Î¥Ý¡¼¥ÈÈֹ椬
1601 ÀßÄꤵ¤ì¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï NULL ¤òÊÖ¤¹¡£
1603 .\"O This allows the user to specify the maximum packet size for sending and
1604 .\"O receiving UDP-based RPC messages.
1605 ¤³¤ì¤Ë¤è¤ê¥æ¡¼¥¶¤Ï UDP ¤Ë´ð¤Å¤¤¤¿ RPC ¥á¥Ã¥»¡¼¥¸¤Ç
1606 »ÈÍѤǤ¤ëÁ÷¿®¥Ñ¥±¥Ã¥È¤ª¤è¤Ó¼õ¿®¥Ñ¥±¥Ã¥È¤ÎºÇÂ祵¥¤¥º¤ò»ØÄê¤Ç¤¤ë¡£
1609 .BI "SVCXPRT *svcudp_create(int " sock );
1612 .\"O This call is equivalent to
1613 .\"O \fIsvcudp_bufcreate(sock,SZ,SZ)\fP
1614 .\"O for some default size \fISZ\fP.
1615 Á÷¿®¥Ñ¥±¥Ã¥È¤È¼õ¿®¥Ñ¥±¥Ã¥È¤Î¥µ¥¤¥º¤òƱ¤¸¥Ç¥Õ¥©¥ë¥È¤ÎÃÍ \fISZ\fP ¤Ë»ØÄꤷ¤¿
1616 \fIsvcudp_bufcreate(sock,SZ,SZ)\fP ¤ÈÅù²Á¤Ç¤¢¤ë¡£
1619 .BI "bool_t xdr_accepted_reply(XDR *" xdrs ", struct accepted_reply *" ar );
1622 .\"O Used for encoding RPC reply messages.
1623 .\"O This routine is useful for users who wish to generate
1624 .\"O RPC-style messages without using the RPC package.
1625 RPC ±þÅú¥á¥Ã¥»¡¼¥¸¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï
1626 RPC ¥Ñ¥Ã¥±¡¼¥¸¤òÍѤ¤¤º¤Ë
1627 RPC-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1630 .BI "bool_t xdr_authunix_parms(XDR *" xdrs ", struct authunix_parms *" aupp );
1633 .\"O Used for describing UNIX credentials.
1634 .\"O This routine is useful for users
1635 .\"O who wish to generate these credentials without using the RPC
1636 .\"O authentication package.
1637 UNIX ·Á¼°¤Î¾ÚÌÀ½ñ¤òµ½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï
1638 RPC ǧ¾Ú¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë¤³¤ì¤é¤Î¾ÚÌÀ½ñ¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1641 .BI "void xdr_callhdr(XDR *" xdrs ", struct rpc_msg *" chdr );
1644 .\"O Used for describing RPC call header messages.
1645 .\"O This routine is useful for users who wish to generate
1646 .\"O RPC-style messages without using the RPC package.
1647 RPC ¸Æ¤Ó½Ð¤·¤Î¥Ø¥Ã¥À¡¼¡¦¥á¥Ã¥»¡¼¥¸¤òµ½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£
1648 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï RPC ¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë
1649 RPC-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1652 .BI "bool_t xdr_callmsg(XDR *" xdrs ", struct rpc_msg *" cmsg );
1655 .\"O Used for describing RPC call messages.
1656 .\"O This routine is useful for users who wish to generate RPC-style
1657 .\"O messages without using the RPC package.
1658 RPC ¸Æ¤Ó½Ð¤·¥á¥Ã¥»¡¼¥¸¤òµ½Ò¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£
1659 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï RPC ¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë
1660 RPC-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1663 .BI "bool_t xdr_opaque_auth(XDR *" xdrs ", struct opaque_auth *" ap );
1666 .\"O Used for describing RPC authentication information messages.
1667 .\"O This routine is useful for users who wish to generate
1668 .\"O RPC-style messages without using the RPC package.
1669 PRC ǧ¾Ú¾ðÊó¥á¥Ã¥»¡¼¥¸¤òµ½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£
1670 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï RPC ¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë
1671 RPC-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1674 .BI "bool_t xdr_pmap(XDR *" xdrs ", struct pmap *" regs );
1677 .\"O Used for describing parameters to various
1679 .\"O procedures, externally.
1680 .\"O This routine is useful for users who wish to generate
1681 .\"O these parameters without using the
1686 ¥×¥í¥·¥¸¥ã¤Ø¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò³°ÉôŪ¤Ëµ½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£
1689 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ÈÍѤ»¤º¤Ë¡¢¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò
1690 ºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1693 .BI "bool_t xdr_pmaplist(XDR *" xdrs ", struct pmaplist **" rp );
1696 .\"O Used for describing a list of port mappings, externally.
1697 .\"O This routine is useful for users who wish to generate
1698 .\"O these parameters without using the
1701 ¥Ý¡¼¥È¤Î¥Þ¥Ã¥Ô¥ó¥°¤Î¥ê¥¹¥È¤ò³°ÉôŪ¤Ëµ½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£
1704 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ÈÍѤ»¤º¤Ë¡¢¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò
1705 ºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1708 .BI "bool_t xdr_rejected_reply(XDR *" xdrs ", struct rejected_reply *" rr );
1711 .\"O Used for describing RPC reply messages.
1712 .\"O This routine is useful for users who wish to generate
1713 .\"O RPC-style messages without using the RPC package.
1714 RPC ±þÅú¥á¥Ã¥»¡¼¥¸¤òµ½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï
1715 RPC ¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë¡¢
1716 RPC-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1719 .BI "bool_t xdr_replymsg(XDR *" xdrs ", struct rpc_msg *" rmsg );
1722 .\"O Used for describing RPC reply messages.
1723 .\"O This routine is useful for users who wish to generate
1724 .\"O RPC style messages without using the RPC package.
1725 RPC ±þÅú¥á¥Ã¥»¡¼¥¸¤òµ½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£
1726 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï RPC ¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë¡¢
1727 RPC ·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1730 .BI "void xprt_register(SVCXPRT *" xprt );
1733 .\"O After RPC service transport handles are created,
1734 .\"O they should register themselves with the RPC service package.
1735 .\"O This routine modifies the global variable
1737 .\"O Service implementors usually do not need this routine.
1738 RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë¤òÀ¸À®¤·¤¿¸å¤Ë¡¢¤½¤ì¤é¼«¿È¤ò
1739 RPC ¥µ¡¼¥Ó¥¹¡¦¥Ñ¥Ã¥±¡¼¥¸¤ËÅÐÏ¿¤¹¤ëɬÍפ¬¤¢¤ë¡£
1740 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÂç°èÊÑ¿ô
1742 ¤ò½¤Àµ¤¹¤ë¡£¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¼Ô¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£
1745 .BI "void xprt_unregister(SVCXPRT *" xprt );
1748 .\"O Before an RPC service transport handle is destroyed,
1749 .\"O it should unregister itself with the RPC service package.
1750 .\"O This routine modifies the global variable
1752 .\"O Service implementors usually do not need this routine.
1753 RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë¤òÇ˲õ¤¹¤ëÁ°¤Ë¡¢¤½¤ì¤ò
1754 RPC ÄÌ¿®¥Ñ¥Ã¥±¡¼¥¸¤«¤éÅÐÏ¿²ò½ü¤¹¤ëɬÍפ¬¤¢¤ë¡£
1755 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÂç°èÊÑ¿ô
1757 ¤ò½¤Àµ¤¹¤ë¡£¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¼Ô¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£
1760 .\"O .\" We don't have an rpc_secure.3 page in the set at the moment -- MTK, 19 Sep 05
1761 .\"O .\" .BR rpc_secure (3),
1762 .\" º£¸½ºß¤Ï¡¢¤³¤ÎÇÛÉÛʪ (LDP_man-pages) ¤Ë¤Ï rpc_secure.3 ¤ÏÆþ¤Ã¤Æ¤¤¤Ê¤¤
1763 .\" -- MTK, 19 Sep 05
1764 .\" .BR rpc_secure (3),
1767 .\"O The following manuals:
1770 Remote Procedure Calls: Protocol Specification
1772 Remote Procedure Call Programming Guide
1774 rpcgen Programming Guide
1777 .IR "RPC: Remote Procedure Call Protocol Specification" ,
1778 RFC\ 1050, Sun Microsystems, Inc.,