OSDN Git Service

(split) LDP_man-pages: release ioctl.2 [JM:00378]
[linuxjm/LDP_man-pages.git] / draft / man3 / rpc.3
1 .\" This page was taken from the 4.4BSD-Lite CDROM (BSD license)
2 .\"
3 .\" @(#)rpc.3n  2.4 88/08/08 4.0 RPCSRC; from 1.19 88/06/24 SMI
4 .\"
5 .\" 2007-12-30, mtk, Convert function prototypes to modern C syntax
6 .\"
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>
13 .\"
14 .TH RPC 3 2008-07-17 "" "Linux Programmer's Manual"
15 .\"O .SH NAME
16 .SH Ì¾Á°
17 .\"O rpc \- library routines for remote procedure calls
18 rpc \- ±ó³Ö¼ê³¤­¸Æ¤Ó½Ð¤·(RPC)¤Î¤¿¤á¤Î¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Æ¥£¥ó
19 .\"O .SH SYNOPSIS AND DESCRIPTION
20 .SH ½ñ¼°¤ÈÀâÌÀ
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 ºÇ¸å¤Ë¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Ï¥¯¥é¥¤¥¢¥ó¥È¤Ø¤ÈÌá¤ë¡£
34 .\" .LP
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 Ç§¾Ú¤¬ÍøÍѲÄǽ¤Ê¾ì¹ç¤Ë¤Î¤ß»ÈÍѤǤ­¤ë¡£
43 .LP
44 .\"O To take use of these routines, include the header file
45 .\"O .IR "<rpc/rpc.h>" .
46 ¤³¤ì¤é¤Î¥ë¡¼¥Æ¥£¥ó¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë
47 .I "<rpc/rpc.h>"
48 ¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤³¤È¡£
49
50 .\"O The prototypes below make use of the following types:
51 ²¼µ­¤Î¥×¥í¥È¥¿¥¤¥×¤Ç¤Ï¼¡¤Î·¿¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£
52 .in +4n
53 .nf
54
55 typedef int \fIbool_t\fP;
56
57 typedef bool_t (*\fIxdrproc_t\fP) (XDR *, void *,...);
58
59 typedef bool_t (*\fIresultproc_t\fP) (caddr_t resp,
60                                 struct sockaddr_in *raddr);
61 .fi
62 .in
63 .LP
64 .\"O See the header files for the declarations of the
65 .\"O .IR AUTH ,
66 .\"O .IR CLIENT ,
67 .\"O .IR SVCXPRT ,
68 .\"O and
69 .\"O .IR XDR
70 .\"O types.
71 ·¿
72 .IR AUTH ,
73 .IR CLIENT ,
74 .IR SVCXPRT ,
75 .IR XDR
76 ¤ÎÀë¸À¤Ë¤Ä¤¤¤Æ¤Ï¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò»²¾È¡£
77 .LP
78 .nf
79 .BI "void auth_destroy(AUTH *" auth );
80 .fi
81 .IP
82 .\"O A macro that destroys the authentication information associated with
83 .\"O .IR auth .
84 .\"O Destruction usually involves deallocation of private data structures.
85 .\"O The use of
86 .\"O .I auth
87 .\"O is undefined after calling
88 .\"O .BR auth_destroy ().
89 ¤³¤Î¥Þ¥¯¥í¤Ï
90 .I auth
91 ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿Ç§¾Ú¾ðÊó¤òÇ˲õ¤¹¤ë¡£Ç˲õ¤ÏÄ̾ï¤Ï»äŪ¤Ê¥Ç¡¼¥¿¹½Â¤¤Î
92 ÇË´þ¤ò´Þ¤ó¤Ç¤¤¤ë¡£
93 .BR auth_destroy ()
94 ¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ë
95 .I auth
96 ¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£
97 .LP
98 .nf
99 .BI "AUTH *authnone_create(void);"
100 .fi
101 .IP
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 ¤Ç»ÈÍѤµ¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤Îǧ¾Ú¤Ç¤¢¤ë¡£
109 .LP
110 .nf
111 .BI "AUTH *authunix_create(char *" host ", int " uid ", int " gid ,
112 .BI "                      int " len ", int *" aup_gids );
113 .fi
114 .IP
115 .\"O Create and return an RPC authentication handle that contains
116 .\"O authentication information.
117 .\"O The parameter
118 .\"O .I host
119 .\"O is the name of the machine on which the information was created;
120 .\"O .I uid
121 .\"O is the user's user ID;
122 .\"O .I gid
123 .\"O is the user's current group ID;
124 .\"O .I len
125 .\"O and
126 .\"O .I aup_gids
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 Ç§¾Ú¥Ï¥ó¥É¥ë¤òºîÀ®¤·¤ÆÊÖ¤¹¡£
130 .I host
131 ¥Ñ¥é¥á¡¼¥¿¡¼¤Ï¾ðÊ󤬺îÀ®¤µ¤ì¤¿¥Þ¥·¥ó¤Î̾Á°¤Ç¤¢¤ë¡£
132 .I uid
133 ¤Ï¤½¤Î¥æ¡¼¥¶¤Î¥æ¡¼¥¶
134 .SM ID
135 ¡¢
136 .I gid
137 ¤Ï¤½¤Î¥æ¡¼¥¶¤Î¸½ºß¤Î¥°¥ë¡¼¥×
138 .SM ID
139 ¤Ç¤¢¤ë¡£
140 .I len
141 ¤È
142 .I aup_gids
143 ¤Ï¤½¤Î¥æ¡¼¥¶¤¬½ê°¤¹¤ë¥°¥ë¡¼¥×¤ÎÇÛÎó¤ò»²¾È¤·¤Æ¤¤¤ë¡£
144 ¾¤Î¥æ¡¼¥¶¤Ë¤Ê¤ê¤¹¤Þ¤¹¤³¤È¤Ï´Êñ¤Ç¤¢¤ë¡£
145 .LP
146 .nf
147 .BI "AUTH *authunix_create_default(void);"
148 .fi
149 .IP
150 .\"O Calls
151 .\"O .BR authunix_create ()
152 .\"O with the appropriate parameters.
153 ŬÀڤʥѥé¥á¡¼¥¿¡¼¤Ç
154 .BR authunix_create ()
155 ¤ò¸Æ¤Ó½Ð¤¹¡£
156 .LP
157 .nf
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 );
162 .fi
163 .IP
164 .\"O Call the remote procedure associated with
165 .\"O .IR prognum ,
166 .\"O .IR versnum ,
167 .\"O and
168 .\"O .I procnum
169 .\"O on the machine,
170 .\"O .IR host .
171 .\"O The parameter
172 .\"O .I in
173 .\"O is the address of the procedure's argument(s), and
174 .\"O .I out
175 .\"O is the address of where to place the result(s);
176 .\"O .I inproc
177 .\"O is used to encode the procedure's parameters, and
178 .\"O .I outproc
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.
183 .\"O The routine
184 .\"O .BR clnt_perrno ()
185 .\"O is handy for translating failure statuses into messages.
186 ¥Þ¥·¥ó
187 .I host
188 ¾å¤Ç
189 .IR prognum ,
190 .IR versnum ,
191 .I procnum
192 ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£
193 ¥Ñ¥é¥á¡¼¥¿¡¼
194 .I in
195 ¤Ï¥×¥í¥·¥¸¥ã¤Î°ú¤­¿ô¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ê
196 .I out
197 ¤Ï·ë²Ì¤ò³ÊǼ¤¹¤ë¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
198 .I inproc
199 ¤Ï¥×¥í¥·¥¸¥ã¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¡¢
200 .I outproc
201 ¤Ï·ë²Ì¤ò¥Ç¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£
202 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï
203 .B "enum clnt_stat"
204 ¤òÀ°¿ô¤Ë¥­¥ã¥¹¥È¤·¤¿ÃͤòÊÖ¤¹¡£
205 .BR clnt_perrno ()
206 ¥ë¡¼¥Æ¥£¥ó¤¬¼ºÇԤξõÂÖ¤ò¥á¥Ã¥»¡¼¥¸¤ËÊÑ´¹¤¹¤ë¤Î¤Ë»ÈÍѤǤ­¤ë¡£
207 .IP
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 ¤ò»²¾È¤¹¤ë¤³¤È¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ò»ÈÍѤ·¤Æǧ¾Ú¤ä»þ´ÖÀÚ¤ì¤ÎÀ©¸æ¤ò
217 ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
218 .LP
219 .nf
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 );
225 .fi
226 .IP
227 .\"O Like
228 .\"O .BR callrpc (),
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 (),
233 .\"O whose form is:
234 .BR callrpc ()
235 ¤ÈƱÍͤǤ¢¤ë¤¬¡¢¥á¥Ã¥»¡¼¥¸¤¬¥í¡¼¥«¥ë¤Î¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¡¦¥Í¥Ã¥È¥ï¡¼¥¯
236 Á´ÂÎ¤Ø¤È¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤µ¤ì¤ëÅÀ¤¬°Û¤Ã¤Æ¤¤¤ë¡£²óÅú¤ò¼õ¤±¼è¤ëÅÙ¤Ë
237 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï°Ê²¼¤Î·Á¼°¤Î
238 .BR eachresult ()
239 ¤ò¸Æ¤Ó½Ð¤¹¡£
240 .IP
241 .in +4n
242 .nf
243 .BI "eachresult(char *" out ", struct sockaddr_in *" addr );
244 .fi
245 .in
246 .IP
247 .\"O where
248 .\"O .I out
249 .\"O is the same as
250 .\"O .I out
251 .\"O passed to
252 .\"O .BR clnt_broadcast (),
253 .\"O except that the remote procedure's output is decoded there;
254 .\"O .I addr
255 .\"O points to the address of the machine that sent the results.
256 .\"O If
257 .\"O .BR eachresult ()
258 .\"O returns zero,
259 .\"O .BR clnt_broadcast ()
260 .\"O waits for more replies; otherwise it returns with appropriate status.
261 ¤³¤³¤Ç
262 .I out
263 ¤Ï
264 .BR clnt_broadcast ()
265 ¤ËÅϤµ¤ì¤ë
266 .I out
267 ¤ÈƱ¤¸¤Ç¤¢¤ë¤¬¡¢¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤«¤é¤Î½ÐÎϤ¬¥Ç¥³¡¼¥É¤µ¤ì¤Æ¤¤¤ë
268 ÅÀ¤Î¤ß¤¬°Û¤Ã¤Æ¤¤¤ë¡£
269 .I addr
270 ¤Ï·ë²Ì¤òÁ÷¤Ã¤ÆÍ褿¥Þ¥·¥ó¤Î¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¡£
271 .BR eachresult ()
272 ¤¬¥¼¥í¤òÊÖ¤·¤¿¾ì¹ç¡¢
273 .BR clnt_broadcast ()
274 ¤Ï¤µ¤é¤Ê¤ë²óÅú¤òÂԤġ£¤½¤¦¤Ç¤Ê¤±¤ì¤ÐŬÀڤʾõÂ֤ǽªÎ»¤¹¤ë¡£
275 .IP
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 ¥Ð¥¤¥È¤Ç¤¢¤ë¡£
281 .LP
282 .nf
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 );
287 .fi
288 .IP
289 .\"O A macro that calls the remote procedure
290 .\"O .I procnum
291 .\"O associated with the client handle,
292 .\"O .IR clnt ,
293 .\"O which is obtained with an RPC client creation routine such as
294 .\"O .BR clnt_create ().
295 ¤³¤Î¥Þ¥¯¥í¤Ï¥¯¥é¥¤¥¢¥ó¥È¡¦¥Ï¥ó¥É¥ë
296 .I clnt
297 ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿
298 .I procnum
299 ¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£
300 ¥¯¥é¥¤¥¢¥ó¥È¡¦¥Ï¥ó¥É¥ë¤Ï
301 .BR clnt_create ()
302 ¤Î¤è¤¦¤Ê
303 .SM RPC
304 ¥¯¥é¥¤¥¢¥ó¥ÈºîÀ®¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤ë¡£
305 .\"O The parameter
306 .\"O .I in
307 .\"O is the address of the procedure's argument(s), and
308 .\"O .I out
309 .\"O is the address of where to place the result(s);
310 .\"O .I inproc
311 .\"O is used to encode the procedure's parameters, and
312 .\"O .I outproc
313 .\"O is used to decode the procedure's results;
314 .\"O .I tout
315 .\"O is the time allowed for results to come back.
316 ¥Ñ¥¿¥á¡¼¥¿
317 .I in
318 ¤Ï¥×¥í¥·¥¸¥ã¤Î°ú¤­¿ô¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
319 .I out
320 ¤Ï¥×¥í¥·¥¸¥ã¤ÎÊÖ¤êÃͤò³ÊǼ¤¹¤ë¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
321 .I inproc
322 ¤Ï¥×¥í¥·¥¸¥ã¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£
323 .I outproc
324 ¤Ï¥×¥í¥·¥¸¥ã¤ÎÊÖ¤êÃͤò¥Ç¥³¡¼¥É¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£
325 .I tout
326 ¤Ï·ë²Ì¤¬ÊÖ¤µ¤ì¤ë¤Î¤òÂԤĻþ´Ö¤Ç¤¢¤ë¡£
327 .LP
328 .nf
329 .BI "clnt_destroy(CLIENT *" clnt );
330 .fi
331 .IP
332 .\"O A macro that destroys the client's RPC handle.
333 .\"O Destruction usually involves deallocation
334 .\"O of private data structures, including
335 .\"O .I clnt
336 .\"O itself.
337 .\"O Use of
338 .\"O .I clnt
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 ¥Ï¥ó¥É¥ë¤òÇ˲õ¤¹¤ë¡£Ç˲õ¤Ë¤ÏÄ̾ï¤Ï
344 .I clnt
345 ¼«¿È¤â´Þ¤á¤Æ»äŪ¤Ê¥Ç¡¼¥¿¹½Â¤ÂΤÎÇË´þ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£
346 .BR clnt_destroy ()
347 ¤Î¸Æ¤Ó½Ð¤·¤Î¸å¤Ë
348 .I clnt
349 ¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£
350 RPC ¥é¥¤¥Ö¥é¥ê¤¬´ØÏ¢¤¹¤ë¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤¿¾ì¹ç¤Ë¤Ï¡¢
351 ¤½¤ì¤âÊĤ¸¤é¤ì¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¥½¥±¥Ã¥È¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤Ç¤¢¤ë¡£
352 .LP
353 .nf
354 .BI "CLIENT *clnt_create(char *" host ", unsigned long " prog ,
355 .BI "                    unsigned long " vers ", char *" proto );
356 .fi
357 .IP
358 .\"O Generic client creation routine.
359 .\"O .I host
360 .\"O identifies the name of the remote host where the server is located.
361 .\"O .I proto
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 °ìÈÌŪ¤Ê¥¯¥é¥¤¥¢¥ó¥È¤ÎºîÀ®¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£
368 .I host
369 ¤Ï¥µ¡¼¥Ð¤Î¤¢¤ë¥ê¥â¡¼¥È¥Û¥¹¥È¤Î̾Á°¤ò»ØÄꤹ¤ë¡£
370 .I proto
371 ¤É¤Î¤è¤¦¤ÊÄÌ¿®¥×¥í¥È¥³¥ë¤ò»ÈÍѤ¹¤ë¤«¤ò»ØÄꤹ¤ë¡£¸½ºß¤³¤³¤Ë
372 »ÈÍѤǤ­¤ëÃͤϠ\(lqudp\(rq ¤È \(lqtcp\(rq ¤Ç¤¢¤ë¡£
373 ¥Ç¥Õ¥©¥ë¥È¤Î»þ´ÖÀڤ줬ÀßÄꤵ¤ì¤ë¤¬¡¢
374 .BR clnt_control ()
375 ¤ò»ÈÍѤ·¤ÆÊѹ¹²Äǽ¤Ç¤¢¤ë¡£
376 .IP
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.
381 ·Ù¹ð:
382 UDP ¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ë¤Ï·çÅÀ¤¬¤¢¤ë¡£
383 UDP ¤Ë´ð¤Å¤¤¤¿ RPC ¥á¥Ã¥»¡¼¥¸¤Ï
384 ºÇÂç¤Ç¤â 8 KByte ¤Î¥¨¥ó¥³¡¼¥É¥Ç¡¼¥¿¤·¤«ÊÝ»ý¤¹¤ë
385 ¤³¤È¤¬¤Ç¤­¤Ê¤¤¤¿¤á¡¢Â礭¤Ê°ú¤­¿ô¤äµðÂç¤Ê·ë²Ì¤ò¼è¤ë¥×¥í¥·¥¸¥ã¤Ë
386 ¤Ï»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£
387 .LP
388 .nf
389 .BI "bool_t clnt_control(CLIENT *" cl ", int " req ", char *" info );
390 .fi
391 .IP
392 .\"O A macro used to change or retrieve various information
393 .\"O about a client object.
394 .\"O .I req
395 .\"O indicates the type of operation, and
396 .\"O .I info
397 .\"O is a pointer to the information.
398 .\"O For both UDP and TCP, the supported values of
399 .\"O .I req
400 .\"O and their argument types and what they do are:
401 ¤³¤Î¥Þ¥¯¥í¤Ï³Æ¼ï¥¯¥é¥¤¥¢¥ó¥È¤Ë¤Ä¤¤¤Æ¾ðÊó¤òÊѹ¹¤·¤¿¤ê¡¢¼èÆÀ¤·¤¿¤ê
402 ¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£
403 .I req
404 ¤ÏÁàºî¤Î¼ïÎà¤ò»ØÄꤹ¤ë¡£
405 .I info
406 ¤Ï¾ðÊó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¤¢¤ë¡£
407 UDP ¤È TCP ¤É¤Á¤é¤Î¾ì¹ç¤â»ÈÍѲÄǽ¤Ê
408 .I req
409 ¤ÎÃͤȡ¢¤½¤Î°ú¤­¿ô¤Î·¿¡¢¤ª¤è¤Ó¤½¤ÎÆâÍƤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë:
410 .IP
411 .in +4n
412 .nf
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 // »þ´ÖÀÚ¤ì¤ò¼èÆÀ¤¹¤ë
418 .fi
419 .in
420 .IP
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.
426 Ãí°Õ:
427 .BR clnt_control ()
428 ¤ò»ÈÍѤ·¤Æ»þ´ÖÀÚ¤ì¤òÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¤½¤ì°Ê¸å¤Ï
429 .BR clnt_call ()
430 ¤ËÅϤµ¤ì¤ë»þ´ÖÀÚ¤ì¥Ñ¥é¥á¡¼¥¿¡¼¤ÏÁ´¤Æ̵»ë¤µ¤ì¤ë¡£
431 .IP
432 .in +4n
433 .nf
434 .\"O \fBCLGET_SERVER_ADDR\fP  \fIstruct sockaddr_in \fP // get server's address
435 \fBCLGET_SERVER_ADDR\fP  \fIstruct sockaddr_in \fP // ¥µ¡¼¥Ð¥¢¥É¥ì¥¹¤ò¼èÆÀ¤¹¤ë
436 .fi
437 .in
438 .IP
439 .\"O The following operations are valid for UDP only:
440 °Ê²¼¤ÎÁàºî¤Ï UDP ¤Î¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ç¤¢¤ë:
441 .IP
442 .in +4n
443 .nf
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 // ºÆÁ÷´Ö³Ö¤ò¼èÆÀ¤¹¤ë
448 .fi
449 .in
450 .IP
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" ¤¬¥µ¡¼¥Ð¤Î²óÅú¤òÂԤĻþ´Ö¤Ç¤¢¤ë¡£
456 .LP
457 .nf
458 .BI "clnt_freeres(CLIENT * " clnt ", xdrproc_t " outproc ", char *" out );
459 .fi
460 .IP
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.
463 .\"O The parameter
464 .\"O .I out
465 .\"O is the address of the results, and
466 .\"O .I outproc
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 ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ³äÅö¤Æ¤é¤ì¤¿¥Ç¡¼¥¿¤ò²òÊü¤¹¤ë¡£
472 ¥Ñ¥é¥á¡¼¥¿¡¼
473 .I out
474 ¤Ï·ë²Ì¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
475 .I outproc
476 ¤Ï·ë²Ì¤òµ­½Ò¤·¤Æ¤¤¤ë XDR ¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£
477 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï·ë²Ì¤Î²òÊü¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£
478 ¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£
479 .LP
480 .nf
481 .BI "void clnt_geterr(CLIENT *" clnt ", struct rpc_err *" errp );
482 .fi
483 .IP
484 .\"O A macro that copies the error structure out of the client
485 .\"O handle to the structure at address
486 .\"O .IR errp .
487 ¤³¤Î¥Þ¥¯¥í¤Ï¥¯¥é¥¤¥¢¥ó¥È¡¦¥Ï¥ó¥É¥ë¤Î¥¨¥é¡¼¹½Â¤ÂΤò
488 .I errp
489 ¥¢¥É¥ì¥¹¤Ç»ØÄꤵ¤ì¤¿¹½Â¤ÂΤإ³¥Ô¡¼¤¹¤ë¡£
490 .LP
491 .nf
492 .BI "void clnt_pcreateerror(char *" s );
493 .fi
494 .IP
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
498 .\"O .I s
499 .\"O and a colon.
500 .\"O Used when a
501 .\"O .BR clnt_create (),
502 .\"O .BR clntraw_create (),
503 .\"O .BR clnttcp_create (),
504 .\"O or
505 .\"O .BR clntudp_create ()
506 .\"O call fails.
507 ɸ½à¥¨¥é¡¼½ÐÎϤˡ¢¤Ê¤¼¥¯¥é¥¤¥¢¥ó¥È RPC ¥Ï¥ó¥É¥ë¤ÎºîÀ®¤¬
508 ¤Ç¤­¤Ê¤«¤Ã¤¿¤«¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£
509 ¥á¥Ã¥»¡¼¥¸¤ÎÁ°¤Ëʸ»úÎó
510 .I s
511 ¤È¥³¥í¥ó(:)¤¬É½¼¨¤µ¤ì¤ë¡£
512 .BR clnt_create (),
513 .BR clntraw_create (),
514 .BR clnttcp_create (),
515 .BR clntudp_create ()
516 ¤Î¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿»þ¤Ë»ÈÍѤ¹¤ë¤³¤È¡£
517 .LP
518 .nf
519 .BI "void clnt_perrno(enum clnt_stat " stat );
520 .fi
521 .IP
522 .\"O Print a message to standard error corresponding
523 .\"O to the condition indicated by
524 .\"O .IR stat .
525 .\"O Used after
526 .\"O .BR callrpc ().
527 ɸ½à¥¨¥é¡¼½ÐÎϤË
528 .I stat
529 ¤Ë¤è¤Ã¤Æ»Ø¼¨¤µ¤ì¤ë¥¨¥é¡¼¾õÂÖ¤ËÂбþ¤¹¤ë¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£
530 .BR callrpc ()
531 ¤Î¸å¤Ë»ÈÍѤ¹¤ë¤³¤È¡£
532 .LP
533 .nf
534 .BI "clnt_perror(CLIENT *" clnt ", char *" s );
535 .fi
536 .IP
537 .\"O Print a message to standard error indicating why an RPC call failed;
538 .\"O .I clnt
539 .\"O is the handle used to do the call.
540 .\"O The message is prepended with string
541 .\"O .I s
542 .\"O and a colon.
543 .\"O Used after
544 .\"O .BR clnt_call ().
545 ɸ½à¥¨¥é¡¼½ÐÎϤˡ¢¤Ê¤¼ RPC ¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿¤«¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£
546 .I clnt
547 ¤Ï¥³¡¼¥ë¤Ë»ÈÍѤ·¤¿¥Ï¥ó¥É¥ë¤Ç¤¢¤ë¡£
548 ¥á¥Ã¥»¡¼¥¸¤ÎÁ°¤Ëʸ»úÎó
549 .I s
550 ¤È¥³¥í¥ó(:)¤¬É½¼¨¤µ¤ì¤ë¡£
551 .BR clnt_call ()
552 ¤¬¼ºÇÔ¤·¤¿¸å¤Ë»ÈÍѤ¹¤ë¤³¤È¡£
553 .LP
554 .nf
555 .BI "char *clnt_spcreateerror(char *" s );
556 .fi
557 .IP
558 .\"O Like
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 ¤ÈƱÍͤǤ¢¤ë¤¬¡¢É¸½à¥¨¥é¡¼½ÐÎϤØɽ¼¨¤¹¤ë¤«¤ï¤ê¤Ëʸ»úÎó¤òÊÖ¤¹ÅÀ¤¬°Û¤Ã¤Æ¤¤¤ë¡£
563 .IP
564 .\"O Bugs: returns pointer to static data that is overwritten on each call.
565 ¥Ð¥°: ÀÅŪ¤ÊÎΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¤¿¤á¡¢¸Æ¤Ó½Ð¤·¤´¤È¤Ë¾å½ñ¤­¤µ¤ì¤ë¡£
566 .LP
567 .nf
568 .BI "char *clnt_sperrno(enum clnt_stat " stat );
569 .fi
570 .IP
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.
576 .BR clnt_perrno ()
577 ¤ÈƱ¤¸°ú¤­¿ô¤ò¼è¤ë¤¬¡¢¤Ê¤¼
578 RPC ¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿¤«¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òɸ½à¥¨¥é¡¼½ÐÎϤËɽ¼¨¤¹¤ë
579 ¤«¤ï¤ê¤Ë¡¢¥á¥Ã¥»¡¼¥¸¤ò³ÊǼ¤·¤Æ¤¤¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£
580 ʸ»úÎó¤Ï NEWLINE(²þ¹Ô) ¤Ç½ª¤Ã¤Æ¤¤¤ë¡£
581 .IP
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
588 .\"O .BR printf (3),
589 .\"O or if a message format different than that supported by
590 .\"O .BR clnt_perrno ()
591 .\"O is to be used.
592 .\"O Note: unlike
593 .\"O .BR clnt_sperror ()
594 .\"O and
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.
599 .BR clnt_sperrno ()
600 ¤Ï¥×¥í¥°¥é¥à¤¬É¸½à¥¨¥é¡¼½ÐÎϤò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç(¥×¥í¥°¥é¥à¤¬¥µ¡¼¥Ð¤È¤·
601 ¤ÆÁö¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¤è¤¯¤¢¤ê¤¨¤ë)¤ä¡¢¥×¥í¥°¥é¥Þ¡¼¤¬¥á¥Ã¥»¡¼¥¸¤ò
602 .BR printf (3)
603 ¤Ç½ÐÎϤ¹¤ë¤³¤È¤ò˾¤Þ¤Ê¤¤¾ì¹ç¤ä¡¢¥á¥Ã¥»¡¼¥¸¤Î·Á¼°¤¬
604 .BR clnt_perrno ()
605 ¤¬¥µ¥Ý¡¼¥È¤¹¤ë¤â¤Î¤È¤Ï°Û¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ê¤É¤Ë
606 .BR clnt_perrno ()
607 ¤Î¤«¤ï¤ê¤Ë»ÈÍѤµ¤ì¤ë¡£
608 Ãí°Õ:
609 .BR clnt_sperror ()
610 ¤ä
611 .BR clnt_spcreaterror ()
612 ¤È¤Ï°ã¤Ã¤Æ
613 .BR clnt_sperrno ()
614 ¤ÏÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£¤·¤«¤·¸Æ¤Ó½Ð¤·¤´¤È¤Ë¾å½ñ¤­¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£
615 .LP
616 .nf
617 .BI "char *clnt_sperror(CLIENT *" rpch ", char *" s );
618 .fi
619 .IP
620 .\"O Like
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.
625 .BR clnt_perror ()
626 ¤ÈƱÍͤǤ¢¤ë¤¬¡¢É¸½à¥¨¥é¡¼½ÐÎϤËɽ¼¨¤¹¤ëÂå¤ê¤Ë
627 .RB ( clnt_sperrno ()
628 ¤Î¤è¤¦¤Ë) Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹ÅÀ¤¬°Û¤Ã¤Æ¤¤¤ë¡£
629 .IP
630 .\"O Bugs: returns pointer to static data that is overwritten on each call.
631 ¥Ð¥°: ¸Æ¤Ó½Ð¤·¤´¤È¤Ë¾å½ñ¤­¤µ¤ì¤ëÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£
632 .LP
633 .nf
634 .BI "CLIENT *clntraw_create(unsigned long " prognum \
635 ", unsigned long " versnum );
636 .fi
637 .IP
638 .\"O This routine creates a toy RPC client for the remote program
639 .\"O .IR prognum ,
640 .\"O version
641 .\"O .IR versnum .
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 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à
650 .IR prognum ¡¢
651 ¥Ð¡¼¥¸¥ç¥ó
652 .I versnum
653 ¤Î¤¿¤á¤Îµ¼»÷ RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥á¥Ã¥»¡¼¥¸¤ò¥µ¡¼¥Ó¥¹¤ËÅϤ¹¤¿¤á¤Ë»ÈÍѤ¹¤ë
654 ÄÌ¿®¤Ï¼ÂºÝ¤Ë¤Ï¤½¤Î¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤¢¤ë¥Ð¥Ã¥Õ¥¡¡¼¤Ç¤¢¤ë¡£
655 ¤½¤ì¤Ç¡¢Âбþ¤¹¤ë RPC ¥µ¡¼¥Ð¤¬Æ±¤¸¥¢¥É¥ì¥¹¶õ´Ö¤ÎÃæ¤Ë¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
656 .BR svcraw_create ()
657 ¤ò»²¾È¤¹¤ë¤³¤È¡£
658 ¤³¤ì¤Ë¤è¤ê RPC ¤Î¥·¥ß¥å¥ì¡¼¥·¥ç¥ó¤ä¡¢¥«¡¼¥Í¥ë¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë±Æ¶Á¤µ¤ì¤º¤Ë
659 ±þÅú»þ´Ö¤Ê¤É¤Î RPC ¥ª¡¼¥Ð¥Ø¥Ã¥É¤Î³ÍÆÀ¤¬¤Ç¤­¤ë¡£
660 ¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï NULL ¤òÊÖ¤¹¡£
661 .LP
662 .nf
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 );
667 .fi
668 .IP
669 .\"O This routine creates an RPC client for the remote program
670 .\"O .IR prognum ,
671 .\"O version
672 .\"O .IR versnum ;
673 .\"O the client uses TCP/IP as a transport.
674 .\"O The remote program is located at Internet
675 .\"O address
676 .\"O .IR *addr .
677 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à
678 .IR prognum ¡¢
679 ¥Ð¡¼¥¸¥ç¥ó
680 .I versnum
681 ¤Î¤¿¤á¤Î RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥¯¥é¥¤¥¢¥ó¥È¤ÏÄÌ¿®¤Ë
682 TCP/IP ¤ò»ÈÍѤ¹¤ë¡£¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥¢¥É¥ì¥¹¤Î
683 .I *addr
684 ¤Ë¤¢¤ë¡£
685 .\"O If
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
690 .\"O .B portmap
691 .\"O service is consulted for this information).
692 .\"O The parameter
693 .\"O .I sockp
694 .\"O is a socket; if it is
695 .\"O .BR RPC_ANYSOCK ,
696 .\"O then this routine opens a new one and sets
697 .\"O .IR sockp .
698 \fIaddr\->sin_port\fR ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¼ÂºÝ¤Ë¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤¬
699 listen ¤·¤Æ¤¤¤ë¥Ý¡¼¥È¤¬ÀßÄꤵ¤ì¤ë¡£(¤³¤Î¾ðÊó¤Î¤¿¤á¤Ë¥ê¥â¡¼¥È¤Î
700 .B portmap
701 ¥µ¡¼¥Ó¥¹¤¬ÍøÍѤµ¤ì¤ë¡£) ¥Ñ¥é¥á¡¼¥¿¡¼
702 .I sockp
703 ¤Ï¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£¤â¤·¤³¤ì¤¬
704 .B RPC_ANYSOCK
705 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¿·¤·¤¤¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤Æ
706 .I sockp
707 ¤ËÀßÄꤹ¤ë¡£
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
711 .\"O .I sendsz
712 .\"O and
713 .\"O .IR recvsz ;
714 .\"O values of zero choose suitable defaults.
715 .\"O This routine returns NULL if it fails.
716 TCP ¤Ë´ð¤Å¤¤¤¿ RPC ¤Ï¥Ð¥Ã¥Õ¥¡¤µ¤ì¤¿ I/O
717 ¤ò»ÈÍѤ¹¤ë¤¿¤á¡¢¥æ¡¼¥¶¤Ï¥Ñ¥é¥á¡¼¥¿¡¼
718 .I sendsz
719 ¤È
720 .I recvsz
721 ¤ò»ÈÍѤ·¤ÆÁ÷¿®¥Ð¥Ã¥Õ¥¡¤È¼õ¿®¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
722 ¥¼¥í¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤ÏŬÀڤʥǥե©¥ë¥È¤¬ÁªÂò¤µ¤ì¤ë¡£
723 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£
724 .LP
725 .nf
726 .BI "CLIENT *clntudp_create(struct sockaddr_in *" addr ,
727 .BI "                unsigned long " prognum ", unsigned long " versnum ,
728 .BI "                struct timeval " wait ", int *" sockp );
729 .fi
730 .IP
731 .\"O This routine creates an RPC client for the remote program
732 .\"O .IR prognum ,
733 .\"O version
734 .\"O .IR versnum ;
735 .\"O the client uses use UDP/IP as a transport.
736 .\"O The remote program is located at Internet address
737 .\"O .IR addr .
738 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à
739 .IR prognum ¡¢
740 ¥Ð¡¼¥¸¥ç¥ó
741 .I versnum
742 ¤Î¤¿¤á¤Î RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥¯¥é¥¤¥¢¥ó¥È¤ÏÄÌ¿®¤Ë
743 UDP/IP ¤ò»ÈÍѤ¹¤ë¡£¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥¢¥É¥ì¥¹¤Î
744 .I *addr
745 ¤Ë¤¢¤ë¡£
746 .\"O If
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
750 .\"O .B portmap
751 .\"O service is consulted for this information).
752 .\"O The parameter
753 .\"O .I sockp
754 .\"O is a socket; if it is
755 .\"O .BR RPC_ANYSOCK ,
756 .\"O then this routine opens a new one and sets
757 .\"O .IR sockp .
758 \fIaddr\->sin_port\fR ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¼ÂºÝ¤Ë¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤¬
759 listen ¤·¤Æ¤¤¤ë¥Ý¡¼¥È¤¬ÀßÄꤵ¤ì¤ë¡£(¤³¤Î¾ðÊó¤Î¤¿¤á¤Ë¥ê¥â¡¼¥È¤Î
760 .B portmap
761 ¥µ¡¼¥Ó¥¹¤¬ÍøÍѤµ¤ì¤ë¡£) ¥Ñ¥é¥á¡¼¥¿¡¼
762 .I sockp
763 ¤Ï¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£¤â¤·¤³¤ì¤¬
764 .B RPC_ANYSOCK
765 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¿·¤·¤¤¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤Æ
766 .I sockp
767 ¤ËÀßÄꤹ¤ë¡£
768 .\"O The UDP transport resends the call message in intervals of
769 .\"O .B wait
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 ÄÌ¿®¤Ï²óÅú¤¬¤¢¤ë¤«¡¢»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç
774 .B wait
775 ´Ö³Ö¤Ç¸Æ¤Ó½Ð¤·¥á¥Ã¥»¡¼¥¸¤òºÆÁ÷¤¹¤ë¡£»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç¤Î¹ç·×»þ´Ö¤Ï
776 .BR clnt_call ()
777 ¤Ç»ØÄꤹ¤ë¡£
778 .IP
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.
782 ·Ù¹ð: UDP ¤Ë´ð¤Å¤¤¤¿
783 RPC ¥á¥Ã¥»¡¼¥¸¤ÏºÇÂç¤Ç¤â 8 Kbyte ¤Þ¤Ç¤Î¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿¥Ç¡¼¥¿¤·¤«
784 ÊÝ»ý¤Ç¤­¤Ê¤¤¤¿¤á¡¢¤³¤ÎÄÌ¿®¤ÏÂ礭¤Ê°ú¤­¿ô¤äµðÂç¤Ê·ë²Ì¤ò¼è¤ë
785 ¥×¥í¥·¥¸¥ã¤Ë¤Ï»ÈÍѤǤ­¤Ê¤¤¡£
786 .LP
787 .nf
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 );
792 .fi
793 .IP
794 .\"O This routine creates an RPC client for the remote program
795 .\"O .IR prognum ,
796 .\"O on
797 .\"O .IR versnum ;
798 .\"O the client uses use UDP/IP as a transport.
799 .\"O The remote program is located at Internet address
800 .\"O .IR addr .
801 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à
802 .IR prognum ¡¢
803 ¥Ð¡¼¥¸¥ç¥ó
804 .I versnum
805 ¤Î¤¿¤á¤Î RPC ¥¯¥é¥¤¥¢¥ó¥È¤òºîÀ®¤¹¤ë¡£¥¯¥é¥¤¥¢¥ó¥È¤ÏÄÌ¿®¤Ë
806 UDP/IP ¤ò»ÈÍѤ¹¤ë¡£¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥¢¥É¥ì¥¹¤Î
807 .I *addr
808 ¤Ë¤¢¤ë¡£
809 .\"O If
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
813 .\"O .B portmap
814 .\"O service is consulted for this information).
815 .\"O The parameter
816 .\"O .I sockp
817 .\"O is a socket; if it is
818 .\"O .BR RPC_ANYSOCK ,
819 .\"O then this routine opens a new one and sets
820 .\"O .I sockp .
821 \fIaddr\->sin_port\fR ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¼ÂºÝ¤Ë¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤¬
822 listen ¤·¤Æ¤¤¤ë¥Ý¡¼¥È¤¬ÀßÄꤵ¤ì¤ë¡£(¤³¤Î¾ðÊó¤Î¤¿¤á¤Ë¥ê¥â¡¼¥È¤Î
823 .B portmap
824 ¥µ¡¼¥Ó¥¹¤¬ÍøÍѤµ¤ì¤ë¡£) ¥Ñ¥é¥á¡¼¥¿¡¼
825 .I sockp
826 ¤Ï¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£¤â¤·¤³¤ì¤¬
827 .B RPC_ANYSOCK
828 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¿·¤·¤¤¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤·¤Æ
829 .I sockp
830 ¤ËÀßÄꤹ¤ë¡£
831 .\"O The UDP transport resends the call message in intervals of
832 .\"O .I wait
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 ÄÌ¿®¤Ï²óÅú¤¬¤¢¤ë¤«¡¢»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç
837 .B wait
838 ´Ö³Ö¤Ç¸Æ¤Ó½Ð¤·¥á¥Ã¥»¡¼¥¸¤òºÆÁ÷¤¹¤ë¡£»þ´ÖÀڤ줬µ¯¤³¤ë¤Þ¤Ç¤Î¹ç·×»þ´Ö¤Ï
839 .BR clnt_call ()
840 ¤Ç»ØÄꤹ¤ë¡£
841 .IP
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 ¼õ¿®¥Ñ¥±¥Ã¥È¤ÎºÇÂ祵¥¤¥º¤ò»ØÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£
846 .LP
847 .nf
848 .BI "void get_myaddress(struct sockaddr_in *" addr );
849 .fi
850 .IP
851 .\"O Stuff the machine's IP address into
852 .\"O .IR *addr ,
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 ¥¢¥É¥ì¥¹¤ò
858 .I *addr
859 ¤Ë³ÊǼ¤¹¤ë¡£
860 .I /etc/hosts
861 ¤ò°·¤¦¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Æ¥£¥ó¤Ï»ÈÍѤ·¤Ê¤¤¡£¥Ý¡¼¥ÈÈÖ¹æ¤Ï¾ï¤Ë
862 .B htons(PMAPPORT)
863 ¤ËÀßÄꤵ¤ì¤ë¡£
864 .LP
865 .nf
866 .BI "struct pmaplist *pmap_getmaps(struct sockaddr_in *" addr );
867 .fi
868 .IP
869 .\"O A user interface to the
870 .\"O .B portmap
871 .\"O service, which returns a list of the current RPC
872 .\"O program-to-port mappings on the host located at IP address
873 .\"O .IR *addr .
874 .\"O This routine can return NULL.
875 .\"O The command
876 .\"O .IR "rpcinfo\ \-p"
877 .\"O uses this routine.
878 .B portmap
879 ¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ê¡¢
880 IP ¥¢¥É¥ì¥¹
881 .I *addr
882 ¤Ë¤¢¤ë¥Û¥¹¥È¤Î¸½ºß¤Î RPC ¥×¥í¥°¥é¥à¤«¤é¥Ý¡¼¥ÈÈÖ¹æ¤Ø¤Î¥Þ¥Ã¥Ô¥ó¥°¤Î°ìÍ÷¤òÊÖ¤¹¡£
883 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬ NULL ¤òÊÖ¤¹¾ì¹ç¤â¤¢¤ë¡£
884 .RB ` "rpcinfo \-p" '
885 ¥³¥Þ¥ó¥É¤Ï¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£
886 .LP
887 .nf
888 .BI "unsigned short pmap_getport(struct sockaddr_in *" addr ,
889 .BI "                    unsigned long " prognum ", unsigned long " versnum ,
890 .BI "                    unsigned int " protocol );
891 .fi
892 .IP
893 .\"O A user interface to the
894 .\"O .B portmap
895 .\"O service, which returns the port number
896 .\"O on which waits a service that supports program number
897 .\"O .IR prognum ,
898 .\"O version
899 .\"O .IR versnum ,
900 .\"O and speaks the transport protocol associated with
901 .\"O .IR protocol .
902 .B portmap
903 ¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢
904 ¥×¥í¥°¥é¥àÈÖ¹æ
905 .IR prognum ¡¢
906 ¥Ð¡¼¥¸¥ç¥ó
907 .IR versnum ¡¢
908 ´ØÏ¢ÉÕ¤±¤é¤ì¤¿ÄÌ¿®¥×¥í¥È¥³¥ë
909 .I protocol
910 ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥µ¡¼¥Ó¥¹¤¬ÂԤäƤ¤¤ë¥Ý¡¼¥ÈÈÖ¹æ¤òÊÖ¤¹¡£
911 .\"O The value of
912 .\"O .I protocol
913 .\"O is most likely
914 .\"O .B IPPROTO_UDP
915 .\"O or
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
919 .\"O .B portmap
920 .\"O service.
921 .\"O In the latter case, the global variable
922 .\"O .I rpc_createerr
923 .\"O contains the RPC status.
924 .I protocol
925 ¤ÎÃͤϤۤȤó¤É¤Î¾ì¹ç IPPROTO_UDP ¤« IPPROTO_TCP ¤Ç¤¢¤ë¡£
926 ÊÖ¤êÃÍ¥¼¥í¤Ï¥Þ¥Ã¥Ô¥ó¥°¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢
927 RPC ¥·¥¹¥Æ¥à¤¬¥ê¥â¡¼¥È¤Î
928 .B portmap
929 ¥µ¡¼¥Ó¥¹¤Î»²¾È¤Ë¼ºÇÔ¤·¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£¸å¼Ô¤Î¾ì¹ç¤ÏÂç°èÊÑ¿ô
930 .I rpc_createerr
931 ¤¬ RPC ¾õÂÖ¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£
932 .LP
933 .nf
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 );
940 .fi
941 .IP
942 .\"O A user interface to the
943 .\"O .B portmap
944 .\"O service, which instructs
945 .\"O .B portmap
946 .\"O on the host at IP address
947 .\"O .I *addr
948 .\"O to make an RPC call on your behalf to a procedure on that host.
949 .B portmap
950 ¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢
951 IP ¥¢¥É¥ì¥¹
952 .I *addr
953 ¤Î¥Û¥¹¥È¤Î
954 .B portmap
955 ¤ò»²¾È¤·¤Æ¡¢
956 RPC ¸Æ¤Ó½Ð¤·¤òÀ¸À®¤·¡¢¤½¤Î¥Û¥¹¥È¾å¤Î¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£
957 .\"O The parameter
958 .\"O .I *portp
959 .\"O will be modified to the program's port number if the procedure succeeds.
960 .\"O The definitions of other parameters are discussed
961 .\"O in
962 .\"O .BR callrpc ()
963 .\"O and
964 .\"O .BR clnt_call ().
965 .\"O This procedure should be used for a \(lqping\(rq and nothing else.
966 .\"O See also
967 .\"O .BR clnt_broadcast ().
968 ¥Ñ¥é¥á¡¼¥¿¡¼
969 .I *portp
970 ¤Ï¥×¥í¥·¥¸¥ã¤¬À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥×¥í¥°¥é¥à¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ë½¤Àµ¤µ¤ì¤ë¡£
971 ¾¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ÎÄêµÁ¤Ë¤Ä¤¤¤Æ¤Ï
972 .BR callrpc ()
973 ¤ä
974 .BR clnt_call ()
975 ¤ÇÀâÌÀ¤·¤Æ¤¢¤ë¡£
976 ¤³¤Î¥×¥í¥·¥¸¥ã¤Ï \(lqping\(rq ¤Î¤ß¤Ë»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£
977 .BR clnt_broadcast ()
978 ¤â»²¾È¤¹¤ë¤³¤È¡£
979 .LP
980 .nf
981 .BI "bool_t pmap_set(unsigned long " prognum ", unsigned long " versnum ,
982 .BI "                unsigned int " protocol ", unsigned short " port );
983 .fi
984 .IP
985 .\"O A user interface to the
986 .\"O .B portmap
987 .\"O service, which establishes a mapping between the triple
988 .\"O .RI [ prognum , versnum , protocol\fR]
989 .\"O and
990 .\"O .I port
991 .\"O on the machine's
992 .\"O .B portmap
993 .\"O service.
994 .\"O The value of
995 .\"O .I protocol
996 .\"O is most likely
997 .\"O .B IPPROTO_UDP
998 .\"O or
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 ().
1003 .B portmap
1004 ¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢
1005 .RI [ prognum , versnum , protocol\fR]
1006 ¤ÎÁȤ߹ç¤ï¤»¤È
1007 .I port
1008 ¤È¤Î´Ö¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¡¢¤½¤Î¥Þ¥·¥ó¾å¤Î
1009 .B portmap
1010 ¥µ¡¼¥Ó¥¹¤ËÅÐÏ¿¤¹¤ë¡£
1011 .I protocol
1012 ¤Ï¤Û¤È¤ó¤É¤Î¾ì¹ç
1013 .B IPPROTO_UDP
1014 ¤«
1015 .B IPPROTO_TCP
1016 ¤Î¤É¤Á¤é¤«¤Ç¤¢¤ë¡£
1017 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£
1018 .BR svc_register ()
1019 ¤Ë¤è¤Ã¤Æ¼«Æ°Åª¤Ë¼Â¹Ô¤µ¤ì¤ë¡£
1020 .LP
1021 .nf
1022 .BI "bool_t pmap_unset(unsigned long " prognum ", unsigned long " versnum );
1023 .fi
1024 .IP
1025 .\"O A user interface to the
1026 .\"O .B portmap
1027 .\"O service, which destroys all mapping between the triple
1028 .\"O .RI [ prognum , versnum , *\fR]
1029 .\"O and
1030 .\"O .B ports
1031 .\"O on the machine's
1032 .\"O .B portmap
1033 .\"O service.
1034 .\"O This routine returns one if it succeeds, zero otherwise.
1035 .B portmap
1036 ¥µ¡¼¥Ó¥¹¤Î¤¿¤á¤Î¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¡¢
1037 .RI [ prognum , versnum , *\fR]
1038 ¤ÎÁȤ߹ç¤ï¤»¤È
1039 .B ports
1040 ¤Î´Ö¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò¤½¤Î¥Þ¥·¥ó¾å¤Î
1041 .B portmap
1042 ¥µ¡¼¥Ó¥¹¤«¤éºï½ü¤¹¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£
1043 ¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£
1044 .LP
1045 .nf
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 );
1049 .fi
1050 .IP
1051 .\"O Register procedure
1052 .\"O .I procname
1053 .\"O with the RPC service package.
1054 .\"O If a request arrives for program
1055 .\"O .IR prognum ,
1056 .\"O version
1057 .\"O .IR versnum ,
1058 .\"O and procedure
1059 .\"O .IR procnum ,
1060 .\"O .I procname
1061 .\"O is called with a pointer to its parameter(s);
1062 .\"O .I progname
1063 .\"O should return a pointer to its static result(s);
1064 .\"O .I inproc
1065 .\"O is used to decode the parameters while
1066 .\"O .I outproc
1067 .\"O is used to encode the results.
1068 .\"O This routine returns zero if the registration succeeded, \-1 otherwise.
1069 RPC ¥µ¡¼¥Ó¥¹¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ·¤Æ
1070 .I procname
1071 ¥×¥í¥·¥¸¥ã¤òÅÐÏ¿¤¹¤ë¡£¥×¥í¥°¥é¥à
1072 .IR prognum ¡¢
1073 ¥Ð¡¼¥¸¥ç¥ó
1074 .IR versnum ¡¢
1075 ¥×¥í¥·¥¸¥ã
1076 .I procnum
1077 ¤Ø¤ÎÍ׵᤬ÆϤ¤¤¿¾ì¹ç¡¢
1078 .I procname
1079 ¤¬¥Ñ¥é¥á¡¼¥¿¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤ò»ý¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1080 .I progname
1081 ¤ÏÀÅŪ¤Ê·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹É¬Íפ¬¤¢¤ë¡£
1082 .I inproc
1083 ¤Ï¥Ñ¥é¥á¡¼¥¿¡¼¤ò¥Ç¥³¡¼¥É¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£
1084 .I outproc
1085 ¤Ï·ë²Ì¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£
1086 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÅÐÏ¿¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£
1087 ¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤¹¡£
1088 .IP
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 ()
1096 ¤ò»²¾È¤¹¤ë¤³¤È¡£
1097 .LP
1098 .nf
1099 .BI "struct rpc_createerr " rpc_createerr ;
1100 .fi
1101 .IP
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 ¥ë¡¼¥Æ¥£¥ó¤¬Íýͳ¤òɽ¼¨¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£
1110 .LP
1111 .nf
1112 .BI "void svc_destroy(SVCXPRT *" xprt );
1113 .fi
1114 .IP
1115 .\"O A macro that destroys the RPC service transport handle,
1116 .\"O .IR xprt .
1117 .\"O Destruction usually involves deallocation
1118 .\"O of private data structures, including
1119 .\"O .I xprt
1120 .\"O itself.
1121 .\"O Use of
1122 .\"O .I xprt
1123 .\"O is undefined after calling this routine.
1124 ¤³¤Î¥Þ¥¯¥í¤ÏÄÌ¿®¥Ï¥ó¥É¥ë
1125 .I xprt
1126 ¤Î RPC ¥µ¡¼¥Ó¥¹¤òÇ˲õ¤¹¤ë¡£Ç˲õ¤Ë¤ÏÄ̾
1127 .I xprt
1128 ¤ò´Þ¤á¤Æ¡¢»äŪ¤Ê¥Ç¡¼¥¿¹½Â¤ÂΤÎÇË´þ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£
1129 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ë
1130 .I xprt
1131 ¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£
1132 .LP
1133 .nf
1134 .BI "fd_set " svc_fdset ;
1135 .fi
1136 .IP
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
1139 .\"O .BR select (2)
1140 .\"O system call.
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 ¥µ¡¼¥Ó¥¹Â¦¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤òÈ¿±Ç¤·¤¿Âç°èÊÑ¿ô¡£
1150 .BR select (2)
1151 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤Î¤¿¤á¤ËÍøÍѤǤ­¤ë¡£¤³¤ì¤Ï
1152 ¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¼Ô¤¬
1153 .BR svc_run ()
1154 ¤ò¸Æ¤Ó½Ð¤µ¤Ê¤º¤Ë¡¢Æȼ«¤ÎÈóƱ´ü¥¤¥Ù¥ó¥È½èÍý¤òÍѤ¤¤ë¾ì¹ç¤Ë¤Î¤ß°ÕÌ£¤¬¤¢¤ë¡£
1155 ¤³¤ÎÊÑ¿ô¤ÏÆɤ߹þ¤ßÀìÍѤǠ(¤½¤Î¤Þ¤Þ
1156 .BR select (2)
1157 ¤ØÅϤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤!)¡¢
1158 .BR svc_getreqset ()
1159 ¸Æ¤Ó½Ð¤·¤äÀ¸À®¥ë¡¼¥Æ¥£¥ó¤Î¸å¤ËÊѹ¹¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
1160 .LP
1161 .nf
1162 .BI "int " svc_fds ;
1163 .fi
1164 .IP
1165 .\"O Similar to
1166 .\"O .BR svc_fdset ,
1167 .\"O but limited to 32 descriptors.
1168 .\"O This interface is obsoleted by
1169 .\"O .BR svc_fdset .
1170 .B svc_fdset
1171 ¤Ë»÷¤Æ¤¤¤ë¤¬¡¢32 ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£
1172 ¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï
1173 .B svc_fdset
1174 ¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤¿¡£
1175 .LP
1176 .nf
1177 .BI "svc_freeargs(SVCXPRT *" xprt ", xdrproc_t " inproc ", char *" in );
1178 .fi
1179 .IP
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
1184 .\"O freed,
1185 .\"O and zero otherwise.
1186 ¤³¤Î¥Þ¥¯¥í¤Ï¥µ¡¼¥Ó¥¹¡¦¥×¥í¥·¥¸¥ã¤¬
1187 .BR svc_getargs ()
1188 ¤ò»ÈÍѤ·¤Æ°ú¤­¿ô¤ò¥Ç¥³¡¼¥É¤·¤¿»þ¤Ë
1189 RPC/XDR ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ³ä¤êÅö¤Æ¤é¤ì¤¿¥Ç¡¼¥¿¤ò²òÊü¤¹¤ë¡£
1190 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï²òÊü¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 1 ¤òÊÖ¤¹¡£
1191 ¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£
1192 .LP
1193 .nf
1194 .BI "svc_getargs(SVCXPRT *" xprt ", xdrproc_t " inproc ", char *" in );
1195 .fi
1196 .IP
1197 .\"O A macro that decodes the arguments of an RPC request
1198 .\"O associated with the RPC service transport handle,
1199 .\"O .IR xprt .
1200 .\"O The parameter
1201 .\"O .I in
1202 .\"O is the address where the arguments will be placed;
1203 .\"O .I inproc
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 ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë
1207 .I xprt
1208 ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ RPC Í×µá¤Î°ú¤­¿ô¤ò¥Ç¥³¡¼¥É¤¹¤ë¡£¥Ñ¥é¥á¡¼¥¿¡¼
1209 .I in
1210 ¤Ï°ú¤­¿ô¤Î³ÊǼ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
1211 .I inproc
1212 ¤Ï°ú¤­¿ô¤ò¥Ç¥³¡¼¥É¤¹¤ë¤¿¤á¤Î XDR ¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£
1213 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥Ç¥³¡¼¥É¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£
1214 ¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£
1215 .LP
1216 .nf
1217 .BI "struct sockaddr_in *svc_getcaller(SVCXPRT *" xprt );
1218 .fi
1219 .IP
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,
1222 .\"O .IR xprt .
1223 RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë
1224 .I xprt
1225 ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥×¥í¥·¥¸¥ã¤Î¸Æ¤Ó½Ð¤·¸µ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥¢¥É¥ì¥¹¤ò
1226 ¼èÆÀ¤¹¤ë¤¿¤á¤Îɸ½àŪ¤Ê¼êÃÊ¡£
1227 .LP
1228 .nf
1229 .BI "void svc_getreqset(fd_set *" rdfds );
1230 .fi
1231 .IP
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
1236 .\"O .BR select (2)
1237 .\"O system call has determined that an RPC request has arrived on some
1238 .\"O RPC socket(s);
1239 .\"O .I rdfds
1240 .\"O is the resultant read file descriptor bit mask.
1241 .\"O The routine returns when all sockets associated with the value of
1242 .\"O .I rdfds
1243 .\"O have been serviced.
1244 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¼Ô¤¬
1245 .BR svc_run ()
1246 ¤ò¸Æ¤Ó½Ð¤µ¤º¡¢Æȼ«¤ÎÈóƱ´ü¥¤¥Ù¥ó¥È½èÍý¤ò¼ÂÁõ¤¹¤ë¾ì¹ç¤Ë¤Î¤ß°ÕÌ£¤¬¤¢¤ë¡£
1247 ¤³¤ì¤Ï
1248 .BR select (2)
1249 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ RPC ¥½¥±¥Ã¥È¤Ë
1250 RPC Í׵᤬ÅþÃ夷¤¿¤ÈÊÖ¤·¤¿¾ì¹ç¤Ë¤Î¤ß¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1251 .I rdfds
1252 ¤Ï·ë²Ì¤ÎÆɤ߹þ¤ß¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë¡£
1253 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï
1254 .I rdfds
1255 ¤ÎÃͤ˴ØÏ¢ÉÕ¤±¤é¤ì¤¿Á´¤Æ¤Î¥½¥±¥Ã¥È¤Î¥µ¡¼¥Ó¥¹¤¬¹Ô¤Ê¤ï¤ì¤¿»þ¤Ë
1256 Ê֤äƤ¯¤ë¡£
1257 .LP
1258 .nf
1259 .BI "void svc_getreq(int " rdfds );
1260 .fi
1261 .IP
1262 .\"O Similar to
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 ¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤¿¡£
1272 .LP
1273 .nf
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 );
1278 .fi
1279 .IP
1280 .\"O Associates
1281 .\"O .I prognum
1282 .\"O and
1283 .\"O .I versnum
1284 .\"O with the service dispatch procedure,
1285 .\"O .IR dispatch .
1286 .I prognum
1287 ¤È
1288 .I versnum
1289 ¤ò¥µ¡¼¥Ó¥¹ÇÛʬ¥×¥í¥·¥¸¥ã
1290 .I dispatch
1291 ¤Ç´ØÏ¢ÉÕ¤±¤ë¡£
1292 .\"O If
1293 .\"O .I protocol
1294 .\"O is zero, the service is not registered with the
1295 .\"O .B portmap
1296 .\"O service.
1297 .\"O If
1298 .\"O .I protocol
1299 .\"O is nonzero, then a mapping of the triple
1300 .\"O .RI [ prognum , versnum , protocol\fR]
1301 .\"O to
1302 .\"O \fIxprt\->xp_port\fR
1303 .\"O is established with the local
1304 .\"O .B portmap
1305 .\"O service (generally
1306 .\"O .I protocol
1307 .\"O is zero,
1308 .\"O .B IPPROTO_UDP
1309 .\"O or
1310 .\"O .BR IPPROTO_TCP ).
1311 .I protocol
1312 ¤¬¥¼¥í¤Î¾ì¹ç¡¢¥µ¡¼¥Ó¥¹¤Ï
1313 .B portmap
1314 ¥µ¡¼¥Ó¥¹¤Ë¤ÏÅÐÏ¿¤µ¤ì¤Ê¤¤¡£
1315 .I protocol
1316 ¤¬¥¼¥í°Ê³°¤Î¾ì¹ç¡¢
1317 .RI [ prognum , versnum , protocol\fR]
1318 ¤ÎÁȤ߹ç¤ï¤»¤È \fIxprt\->xp_port\fR ¤È¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬¥í¡¼¥«¥ë¤Î
1319 .B portmap
1320 ¥µ¡¼¥Ó¥¹¤ËÅÐÏ¿¤µ¤ì¤ë¡£(°ìÈÌŪ¤Ë
1321 .I protocol
1322 ¤Ï¥¼¥í¡¢
1323 .BR IPPROTO_UDP ¡¢
1324 .B IPPROTO_TCP
1325 ¤Î¤É¤ì¤«¤Ç¤¢¤ë¡£)
1326 .\"O The procedure
1327 .\"O .I dispatch
1328 .\"O has the following form:
1329 ¥×¥í¥·¥¸¥ã
1330 .I dispatch
1331 ¤Ï°Ê²¼¤Î·Á¼°¤Ç¤¢¤ë:
1332 .in +4n
1333 .nf
1334
1335 dispatch(struct svc_req *request, SVCXPRT *xprt);
1336 .fi
1337 .in
1338 .IP
1339 .\"O The
1340 .\"O .BR svc_register ()
1341 .\"O routine returns one if it succeeds, and zero otherwise.
1342 .BR svc_register ()
1343 ¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£
1344 .LP
1345 .nf
1346 .B "void svc_run(void);"
1347 .fi
1348 .IP
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
1355 .\"O .BR select (2)
1356 .\"O system call to return.
1357 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÌá¤Ã¤Æ¤³¤Ê¤¤¡£¤³¤ì¤Ï
1358 .SM RPC
1359 Í×µá¤ÎÅþÃå¤òÂÔ¤Á¡¢¤É¤ì¤«¤¬ÆϤ¤¤¿¾ì¹ç¤Ë
1360 .BR svc_getreq ()
1361 ¤ò»ÈÍѤ·¤ÆŬÀڤʥµ¡¼¥Ó¥¹¡¦¥×¥í¥·¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¡£
1362 ¤³¤Î¥×¥í¥·¥¸¥ã¤ÏÄ̾ï¤Ï
1363 .BR select (2)
1364 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤«¤éÊÖ¤ë¤Î¤òÂԤäƤ¤¤ë¡£
1365 .LP
1366 .nf
1367 .BI "bool_t svc_sendreply(SVCXPRT *" xprt ", xdrproc_t " outproc \
1368 ", char *" out );
1369 .fi
1370 .IP
1371 .\"O Called by an RPC service's dispatch routine to send the results of a
1372 .\"O remote procedure call.
1373 .\"O The parameter
1374 .\"O .I xprt
1375 .\"O is the request's associated transport handle;
1376 .\"O .I outproc
1377 .\"O is the XDR routine which is used to encode the results; and
1378 .\"O .I out
1379 .\"O is the address of the results.
1380 .\"O This routine returns one if it succeeds, zero otherwise.
1381 RPC ¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¥ê¥â¡¼¥È¡¦¥×¥í¥·¥¸¥ã¡¦¥³¡¼¥ë¤Î·ë²Ì¤ò
1382 ÊÖ¤¹¤¿¤á¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1383 ¥Ñ¥é¥á¡¼¥¿¡¼
1384 .I xprt
1385 ¤Ï¤½¤ÎÍ×µá¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ÄÌ¿®¥Ï¥ó¥É¥ë¤Ç¤¢¤ë¡£
1386 .I outproc
1387 ¤Ï·ë²Ì¤ò¥¨¥ó¥³¡¼¥É¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë XDR ¥ë¡¼¥Æ¥£¥ó¤Ç¤¢¤ë¡£
1388 .I out
1389 ¤Ï·ë²Ì¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÀ®¸ù¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£
1390 ¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¼¥í¤òÊÖ¤¹¡£
1391 .LP
1392 .nf
1393 .BI "void svc_unregister(unsigned long " prognum ", unsigned long " versnum );
1394 .fi
1395 .IP
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.
1401 ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤«¤é
1402 .RI [ prognum , versnum ]
1403 ¤ª¤è¤Ó
1404 .RI [ prognum , versnum , *\fR]
1405 ¤ÎÁȤ߹ç¤ï¤»¤«¤é¥Ý¡¼¥ÈÈÖ¹æ¤Ø¤Î¥Þ¥Ã¥Ô¥ó¥°¤òÁ´¤Æºï½ü¤¹¤ë¡£
1406 .LP
1407 .nf
1408 .BI "void svcerr_auth(SVCXPRT *" xprt ", enum auth_stat " why );
1409 .fi
1410 .IP
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 ¾ì¹ç¤Ë¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1415 .LP
1416 .nf
1417 .BI "void svcerr_decode(SVCXPRT *" xprt );
1418 .fi
1419 .IP
1420 .\"O Called by a service dispatch routine that cannot successfully
1421 .\"O decode its parameters.
1422 .\"O See also
1423 .\"O .BR svc_getargs ().
1424 ¥Ñ¥é¥á¡¼¥¿¤Î¥Ç¥³¡¼¥É¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë
1425 ¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1426 .BR svc_getargs ()
1427 ¤â»²¾È¤¹¤ë¤³¤È¡£
1428 .LP
1429 .nf
1430 .BI "void svcerr_noproc(SVCXPRT *" xprt );
1431 .fi
1432 .IP
1433 .\"O Called by a service dispatch routine that does not implement
1434 .\"O the procedure number that the caller requests.
1435 Í×µá¤Î¤¢¤Ã¤¿¥×¥í¥·¥¸¥ãÈֹ椬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë
1436 ¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤è¤ê¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1437 .LP
1438 .nf
1439 .BI "void svcerr_noprog(SVCXPRT *" xprt );
1440 .fi
1441 .IP
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 ¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¤Ë¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£
1446 .LP
1447 .nf
1448 .BI "void svcerr_progvers(SVCXPRT *" xprt );
1449 .fi
1450 .IP
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 ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¤Ë¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£
1456 .LP
1457 .nf
1458 .BI "void svcerr_systemerr(SVCXPRT *" xprt );
1459 .fi
1460 .IP
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 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
1469 .LP
1470 .nf
1471 .BI "void svcerr_weakauth(SVCXPRT *" xprt );
1472 .fi
1473 .IP
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 µñÈݤµ¤ì¤¿¾ì¹ç¤Ë¥µ¡¼¥Ó¥¹ÇÛʬ¥ë¡¼¥Æ¥£¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
1480 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï
1481 .B "svcerr_auth(xprt, AUTH_TOOWEAK)"
1482 ¤ò¸Æ¤Ó½Ð¤¹¡£
1483 .LP
1484 .nf
1485 .BI "SVCXPRT *svcfd_create(int " fd ", unsigned int " sendsize ,
1486 .BI "                      unsigned int " recvsize );
1487 .fi
1488 .IP
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
1491 .\"O as TCP.
1492 .\"O .I sendsize
1493 .\"O and
1494 .\"O .I recvsize
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 ¤Î¤è¤¦¤Ê¥¹¥È¥ê¡¼¥à¡¦¥×¥í¥È¥³¥ë¤ÇÀܳ¤µ¤ì¤¿¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£
1500 .I sendsize
1501 ¤È
1502 .I recvsize
1503 ¤Ë¤ÏÁ÷¿®¥Ð¥Ã¥Õ¥¡¤È¼õ¿®¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤ò»ØÄꤹ¤ë¡£¤â¤·¥¼¥í¤¬»ØÄꤵ¤ì¤¿
1504 ¾ì¹ç¤ÏŬÀڤʥǥե©¥ë¥È¤¬ÁªÂò¤µ¤ì¤ë¡£
1505 .LP
1506 .nf
1507 .BI "SVCXPRT *svcraw_create(void);"
1508 .fi
1509 .IP
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 ()
1519 ¤ò»²¾È¤¹¤ë¤³¤È¡£
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.
1523 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ç
1524 RPC ¤Î¥·¥ß¥å¥ì¡¼¥·¥ç¥ó¤ä¡¢¥«¡¼¥Í¥ë¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë±Æ¶Á¤µ¤ì¤º¤Ë±þÅú»þ´Ö¤Ê¤É¤Î
1525 RPC ¥ª¡¼¥Ð¥Ø¥Ã¥É¤ò¼èÆÀ¤¬¤Ç¤­¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£
1526 .LP
1527 .nf
1528 .BI "SVCXPRT *svctcp_create(int " sock ", unsigned int " send_buf_size ,
1529 .BI "                       unsigned int " recv_buf_size );
1530 .fi
1531 .IP
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
1535 .\"O .IR sock ,
1536 .\"O which may be
1537 .\"O .BR RPC_ANYSOCK ,
1538 .\"O in which case a new socket is created.
1539 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï TCP/IP ¤Ë´ð¤Å¤¯
1540 RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¤òºîÀ®¤·¡¢¤½¤ì¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£
1541 ÄÌ¿®¤Ï¥½¥±¥Ã¥È
1542 .I sock
1543 ¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤ë¡£
1544 .I sock
1545 ¤Ï
1546 .B RPC_ANYSOCK
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 ¤Ë¤ÏÄÌ¿®¤Î¥Ý¡¼¥ÈÈֹ椬
1559 ÀßÄꤵ¤ì¤ë¡£
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 ¥¼¥í¤ò»ØÄꤷ¤¿¾ì¹ç¤ÏŬÀڤʥǥե©¥ë¥È¤¬ÁªÂò¤µ¤ì¤ë¡£
1568 .LP
1569 .nf
1570 .BI "SVCXPRT *svcudp_bufcreate(int " sock ", unsigned int " sendsize ,
1571 .BI "                          unsigned int " recosize );
1572 .fi
1573 .IP
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
1577 .\"O .IR sock ,
1578 .\"O which may be
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 ¤½¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ÄÌ¿®¤Ï¥½¥±¥Ã¥È
1591 .I sock
1592 ¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤ë¡£
1593 .I sock
1594 ¤Ï
1595 .B RPC_ANYSOCK
1596 ¤Ç¤âÎɤ¤¡£¤³¤Î¾ì¹ç¤Ï¿·¤·¤¤¥½¥±¥Ã¥È¤¬ºîÀ®¤µ¤ì¤ë¡£
1597 ¥½¥±¥Ã¥È¤¬¥í¡¼¥«¥ë¤Î UDP ¥Ý¡¼¥È¤Ë bind ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï
1598 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏŬÅö¤Ê¥Ý¡¼¥È¤Ë bind ¤¹¤ë¡£
1599 Êä´°¤µ¤ì¤¿¾ì¹ç¡¢\fIxprt\->xp_sock\fR ¤ËÄÌ¿®¤Î¥½¥±¥Ã¥È¤Î
1600 ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¡¢\fIxprt\->xp_port\fR ¤ËÄÌ¿®¤Î¥Ý¡¼¥ÈÈֹ椬
1601 ÀßÄꤵ¤ì¤ë¡£¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï NULL ¤òÊÖ¤¹¡£
1602 .IP
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 »ÈÍѤǤ­¤ëÁ÷¿®¥Ñ¥±¥Ã¥È¤ª¤è¤Ó¼õ¿®¥Ñ¥±¥Ã¥È¤ÎºÇÂ祵¥¤¥º¤ò»ØÄê¤Ç¤­¤ë¡£
1607 .LP
1608 .nf
1609 .BI "SVCXPRT *svcudp_create(int " sock );
1610 .fi
1611 .IP
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 ¤ÈÅù²Á¤Ç¤¢¤ë¡£
1617 .LP
1618 .nf
1619 .BI "bool_t xdr_accepted_reply(XDR *" xdrs ", struct accepted_reply *" ar );
1620 .fi
1621 .IP
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-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1628 .LP
1629 .nf
1630 .BI "bool_t xdr_authunix_parms(XDR *" xdrs ", struct authunix_parms *" aupp );
1631 .fi
1632 .IP
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 Ç§¾Ú¥Ñ¥Ã¥±¡¼¥¸¤ò»ÈÍѤ»¤º¤Ë¤³¤ì¤é¤Î¾ÚÌÀ½ñ¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1639 .LP
1640 .nf
1641 .BI "void xdr_callhdr(XDR *" xdrs ", struct rpc_msg *" chdr );
1642 .fi
1643 .IP
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-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1650 .LP
1651 .nf
1652 .BI "bool_t xdr_callmsg(XDR *" xdrs ", struct rpc_msg *" cmsg );
1653 .fi
1654 .IP
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-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1661 .LP
1662 .nf
1663 .BI "bool_t xdr_opaque_auth(XDR *" xdrs ", struct opaque_auth *" ap );
1664 .fi
1665 .IP
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-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1672 .LP
1673 .nf
1674 .BI "bool_t xdr_pmap(XDR *" xdrs ", struct pmap *" regs );
1675 .fi
1676 .IP
1677 .\"O Used for describing parameters to various
1678 .\"O .B portmap
1679 .\"O procedures, externally.
1680 .\"O This routine is useful for users who wish to generate
1681 .\"O these parameters without using the
1682 .\"O .B pmap
1683 .\"O interface.
1684 ³Æ¼ï¤Î
1685 .B portmap
1686 ¥×¥í¥·¥¸¥ã¤Ø¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò³°ÉôŪ¤Ëµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£
1687 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï
1688 .B pmap
1689 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ÈÍѤ»¤º¤Ë¡¢¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò
1690 ºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1691 .LP
1692 .nf
1693 .BI "bool_t xdr_pmaplist(XDR *" xdrs ", struct pmaplist **" rp );
1694 .fi
1695 .IP
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
1699 .\"O .B pmap
1700 .\"O interface.
1701 ¥Ý¡¼¥È¤Î¥Þ¥Ã¥Ô¥ó¥°¤Î¥ê¥¹¥È¤ò³°ÉôŪ¤Ëµ­½Ò¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£
1702 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤Ï
1703 .B pmap
1704 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ÈÍѤ»¤º¤Ë¡¢¤³¤ì¤é¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò
1705 ºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1706 .LP
1707 .nf
1708 .BI "bool_t xdr_rejected_reply(XDR *" xdrs ", struct rejected_reply *" rr );
1709 .fi
1710 .IP
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-·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1717 .LP
1718 .nf
1719 .BI "bool_t xdr_replymsg(XDR *" xdrs ", struct rpc_msg *" rmsg );
1720 .fi
1721 .IP
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 ·Á¼°¤Î¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤·¤¿¤¤¾ì¹ç¤ËÊØÍø¤Ç¤¢¤ë¡£
1728 .LP
1729 .nf
1730 .BI "void xprt_register(SVCXPRT *" xprt );
1731 .fi
1732 .IP
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
1736 .\"O .IR svc_fds .
1737 .\"O Service implementors usually do not need this routine.
1738 RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë¤òÀ¸À®¤·¤¿¸å¤Ë¡¢¤½¤ì¤é¼«¿È¤ò
1739 RPC ¥µ¡¼¥Ó¥¹¡¦¥Ñ¥Ã¥±¡¼¥¸¤ËÅÐÏ¿¤¹¤ëɬÍפ¬¤¢¤ë¡£
1740 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÂç°èÊÑ¿ô
1741 .I svc_fds
1742 ¤ò½¤Àµ¤¹¤ë¡£¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¼Ô¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£
1743 .LP
1744 .nf
1745 .BI "void xprt_unregister(SVCXPRT *" xprt );
1746 .fi
1747 .IP
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
1751 .\"O .IR svc_fds .
1752 .\"O Service implementors usually do not need this routine.
1753 RPC ¥µ¡¼¥Ó¥¹ÄÌ¿®¥Ï¥ó¥É¥ë¤òÇ˲õ¤¹¤ëÁ°¤Ë¡¢¤½¤ì¤ò
1754 RPC ÄÌ¿®¥Ñ¥Ã¥±¡¼¥¸¤«¤éÅÐÏ¿²ò½ü¤¹¤ëɬÍפ¬¤¢¤ë¡£
1755 ¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏÂç°èÊÑ¿ô
1756 .I svc_fds
1757 ¤ò½¤Àµ¤¹¤ë¡£¥µ¡¼¥Ó¥¹¤Î¼ÂÁõ¼Ô¤ÏÄ̾¤³¤Î¥ë¡¼¥Æ¥£¥ó¤ÏɬÍפʤ¤¡£
1758 .\"O .SH "SEE ALSO"
1759 .SH ´ØÏ¢¹àÌÜ
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),
1765 .BR xdr (3)
1766 .br
1767 .\"O The following manuals:
1768 °Ê²¼¤Î¥Þ¥Ë¥å¥¢¥ë:
1769 .RS
1770 Remote Procedure Calls: Protocol Specification
1771 .br
1772 Remote Procedure Call Programming Guide
1773 .br
1774 rpcgen Programming Guide
1775 .br
1776 .RE
1777 .IR "RPC: Remote Procedure Call Protocol Specification" ,
1778 RFC\ 1050, Sun Microsystems, Inc.,
1779 USC-ISI.