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"
16 rpc \- 遠隔手続き呼び出し(RPC)のためのライブラリ・ルーティン
18 これらのルーティンは C プログラムでネットワークを通して
19 他のマシンにアクセスするプロシジャを作成することを可能にする。
20 最初にクライアントはデータパケットをサーバに送るために
22 サーバはパケットを受け取ると、配分ルーチンを呼び出して
23 要求されたサービスに実行し、返答を送り返す。
24 最後にプロシジャ・コールはクライアントへと戻る。
26 .\" 今現在は rpc_secure.3 は入っていない -- MTK, 19 Sep 05
27 .\" (DES 認証による) Secure RPC で使用されるルーティンについての説明は
28 .\" .BR rpc_secure (3)
29 .\" に存在する。 Secure RPC は DES 認証が利用可能な場合にのみ使用できる。
31 これらのルーティンを使用するには、ヘッダファイル
35 下記のプロトタイプでは次の型を使用している。
39 typedef int \fIbool_t\fP;
41 typedef bool_t (*\fIxdrproc_t\fP) (XDR *, void *,...);
43 typedef bool_t (*\fIresultproc_t\fP) (caddr_t resp,
44 struct sockaddr_in *raddr);
56 .BI "void auth_destroy(AUTH *" auth );
61 に関連付けられた認証情報を破壊する。破壊は通常は私的なデータ構造の
69 .BI "AUTH *authnone_create(void);"
72 各リモート・プロシジャ・コールで使用できない仮の認証情報として渡される
74 これは RPC で使用されるデフォルトの認証である。
77 .BI "AUTH *authunix_create(char *" host ", int " uid ", int " gid ,
78 .BI " int " len ", int *" aup_gids );
81 認証情報を含んだ RPC 認証ハンドルを作成して返す。
83 パラメーターは情報が作成されたマシンの名前である。
95 はそのユーザが所属するグループの配列を参照している。
99 .BI "AUTH *authunix_create_default(void);"
103 .BR authunix_create ()
107 .BI "int callrpc(char *" host ", unsigned long " prognum ,
108 .BI " unsigned long " versnum ", unsigned long " procnum ,
109 .BI " xdrproc_t " inproc ", char *" in ,
110 .BI " xdrproc_t " outproc ", char *" out );
119 に関連付けられたリモート・プロシジャを呼び出す。
126 はプロシジャのパラメーターをエンコードするのに使用され、
129 このルーティンは成功した場合にはゼロを返す。失敗した場合には
133 ルーティンが失敗の状態をメッセージに変換するのに使用できる。
135 警告: このルーティンでリモート・プロシジャを呼び出すと通信には
136 UDP/IP が使用される。この際の制限については
137 .BR clntudp_create ()
138 を参照すること。このルーティンを使用して認証や時間切れの制御を
142 .BI "enum clnt_stat clnt_broadcast(unsigned long " prognum ,
143 .BI " unsigned long " versnum ", unsigned long " procnum ,
144 .BI " xdrproc_t " inproc ", char *" in ,
145 .BI " xdrproc_t " outproc ", char *" out ,
146 .BI " resultproc_t " eachresult );
150 と同様であるが、メッセージがローカルのブロードキャスト・ネットワーク
151 全体へとブロードキャストされる点が異っている。回答を受け取る度に
158 .BI "eachresult(char *" out ", struct sockaddr_in *" addr );
165 .BR clnt_broadcast ()
168 と同じであるが、リモート・プロシジャからの出力がデコードされている
171 は結果を送って来たマシンのアドレスを指している。
174 .BR clnt_broadcast ()
175 はさらなる回答を待つ。そうでなければ適切な状態で終了する。
177 警告: ブロードキャスト・ソケットはデータリンク層の最大転送単位に
178 制限されている。イーサネットの場合、最大値は 1500 バイトである。
181 .BI "enum clnt_stat clnt_call(CLIENT *" clnt ", unsigned long " procnum ,
182 .BI " xdrproc_t " inproc ", char *" in ,
183 .BI " xdrproc_t " outproc ", char *" out ,
184 .BI " struct timeval " tout );
196 クライアント作成ルーティンによって得られる。
201 はプロシジャの返り値を格納するアドレスである。
203 はプロシジャのパラメーターをエンコードするのに使用される。
205 はプロシジャの返り値をデコードするのに使用される。
210 .BI "clnt_destroy(CLIENT *" clnt );
213 このマクロはクライアントの RPC ハンドルを破壊する。破壊には通常は
215 自身も含めて私的なデータ構造体の破棄が含まれている。
220 RPC ライブラリが関連するソケットをオープンした場合には、
221 それも閉じられる。それ以外の場合にはソケットはオープンされたままである。
224 .BI "CLIENT *clnt_create(char *" host ", unsigned long " prog ,
225 .BI " unsigned long " vers ", char *" proto );
228 一般的なクライアントの作成ルーティンである。
230 はサーバのあるリモートホストの名前を指定する。
232 どのような通信プロトコルを使用するかを指定する。現在ここに
233 使用できる値は \(lqudp\(rq と \(lqtcp\(rq である。
241 最大でも 8 KByte のエンコードデータしか保持する
242 ことができないため、大きな引き数や巨大な結果を取るプロシジャに
246 .BI "bool_t clnt_control(CLIENT *" cl ", int " req ", char *" info );
249 このマクロは各種クライアントについて情報を変更したり、取得したり
255 UDP と TCP どちらの場合も使用可能な
257 の値と、その引き数の型、およびその内容は以下の通りである:
261 .ta +2.0i +2.0i +2.0i
262 \fBCLSET_TIMEOUT\fP \fIstruct timeval\fP // 時間切れを設定する
263 \fBCLGET_TIMEOUT\fP \fIstruct timeval\fP // 時間切れを取得する
269 を使用して時間切れを設定した場合にはそれ以後は
271 に渡される時間切れパラメーターは全て無視される。
275 \fBCLGET_SERVER_ADDR\fP \fIstruct sockaddr_in \fP // サーバアドレスを取得する
279 以下の操作は UDP の場合にのみ有効である:
283 \fBCLSET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // 再送間隔を設定する
284 \fBCLGET_RETRY_TIMEOUT\fP \fIstruct timeval\fP // 再送間隔を取得する
289 "UDP RPC" がサーバの回答を待つ時間である。
292 .BI "clnt_freeres(CLIENT * " clnt ", xdrproc_t " outproc ", char *" out );
295 このマクロは RPC 呼び出しの結果のデコードの際に
296 RPC/XDR システムによって割当てられたデータを解放する。
301 は結果を記述している XDR ルーティンである。
302 このルーティンは結果の解放に成功した場合には 1 を返す。
306 .BI "void clnt_geterr(CLIENT *" clnt ", struct rpc_err *" errp );
309 このマクロはクライアント・ハンドルのエラー構造体を
314 .BI "void clnt_pcreateerror(char *" s );
317 標準エラー出力に、なぜクライアント RPC ハンドルの作成が
318 できなかったかについてのメッセージを表示する。
323 .BR clntraw_create (),
324 .BR clnttcp_create (),
325 .BR clntudp_create ()
329 .BI "void clnt_perrno(enum clnt_stat " stat );
334 によって指示されるエラー状態に対応するメッセージを表示する。
339 .BI "clnt_perror(CLIENT *" clnt ", char *" s );
342 標準エラー出力に、なぜ RPC 呼び出しが失敗したかについてのメッセージを表示する。
352 .BI "char *clnt_spcreateerror(char *" s );
355 .BR clnt_pcreateerror ()
356 と同様であるが、標準エラー出力へ表示するかわりに文字列を返す点が異っている。
358 バグ: 静的な領域へのポインターを返すため、呼び出しごとに上書きされる。
361 .BI "char *clnt_sperrno(enum clnt_stat " stat );
366 RPC 呼び出しが失敗したかについてのメッセージを標準エラー出力に表示する
367 かわりに、メッセージを格納している文字列へのポインターを返す。
368 文字列は NEWLINE(改行) で終っている。
371 はプログラムが標準エラー出力を持っていない場合(プログラムがサーバとし
372 て走っている場合にはよくありえる)や、プログラマーがメッセージを
374 で出力することを望まない場合や、メッセージの形式が
376 がサポートするものとは異っている場合などに
382 .BR clnt_spcreaterror ()
385 は静的データへのポインターを返す。しかし呼び出しごとに上書きされることはない。
388 .BI "char *clnt_sperror(CLIENT *" rpch ", char *" s );
392 と同様であるが、標準エラー出力に表示する代りに
393 .RB ( clnt_sperrno ()
394 のように) 文字列へのポインターを返す点が異っている。
396 バグ: 呼び出しごとに上書きされる静的データへのポインターを返す。
399 .BI "CLIENT *clntraw_create(unsigned long " prognum \
400 ", unsigned long " versnum );
407 のための擬似 RPC クライアントを作成する。メッセージをサービスに渡すために使用する
408 通信は実際にはそのプロセスのアドレス空間にあるバッファーである。
409 それで、対応する RPC サーバが同じアドレス空間の中にいなければならない。
412 これにより RPC のシミュレーションや、カーネル・インターフェースに影響されずに
413 応答時間などの RPC オーバヘッドの獲得ができる。
414 失敗した場合にはこのルーティンは NULL を返す。
417 .BI "CLIENT *clnttcp_create(struct sockaddr_in *" addr ,
418 .BI " unsigned long " prognum ", unsigned long " versnum ,
419 .BI " int *" sockp ", unsigned int " sendsz \
420 ", unsigned int " recvsz );
427 のための RPC クライアントを作成する。クライアントは通信に
428 TCP/IP を使用する。リモート・プログラムはインターネット・アドレスの
431 .\"The following inline font conversion is necessary for the hyphen indicator
432 \fIaddr\->sin_port\fR がゼロならば、実際にリモート・プログラムが
433 listen しているポートが設定される。(この情報のためにリモートの
439 に設定されている場合は、このルーティンが新しいソケットをオープンして
442 TCP に基づいた RPC はバッファされた I/O
447 を使用して送信バッファと受信バッファのサイズを指定することができる。
448 ゼロを指定した場合には適切なデフォルトが選択される。
449 このルーティンは失敗した場合は NULL を返す。
452 .BI "CLIENT *clntudp_create(struct sockaddr_in *" addr ,
453 .BI " unsigned long " prognum ", unsigned long " versnum ,
454 .BI " struct timeval " wait ", int *" sockp );
461 のための RPC クライアントを作成する。クライアントは通信に
462 UDP/IP を使用する。リモート・プログラムはインターネット・アドレスの
465 \fIaddr\->sin_port\fR がゼロならば、実際にリモート・プログラムが
466 listen しているポートが設定される。(この情報のためにリモートの
472 に設定されている場合は、このルーティンが新しいソケットをオープンして
475 UDP 通信は回答があるか、時間切れが起こるまで
477 間隔で呼び出しメッセージを再送する。時間切れが起こるまでの合計時間は
482 RPC メッセージは最大でも 8 Kbyte までのエンコードされたデータしか
483 保持できないため、この通信は大きな引き数や巨大な結果を取る
487 .BI "CLIENT *clntudp_bufcreate(struct sockaddr_in *" addr ,
488 .BI " unsigned long " prognum ", unsigned long " versnum ,
489 .BI " struct timeval " wait ", int *" sockp ,
490 .BI " unsigned int " sendsize ", unsigned int "recosize );
497 のための RPC クライアントを作成する。クライアントは通信に
498 UDP/IP を使用する。リモート・プログラムはインターネット・アドレスの
501 \fIaddr\->sin_port\fR がゼロならば、実際にリモート・プログラムが
502 listen しているポートが設定される。(この情報のためにリモートの
508 に設定されている場合は、このルーティンが新しいソケットをオープンして
511 UDP 通信は回答があるか、時間切れが起こるまで
513 間隔で呼び出しメッセージを再送する。時間切れが起こるまでの合計時間は
517 これを使用すると UDP に基づいた RPC メッセージにおいて送信パケットや
518 受信パケットの最大サイズを指定することが可能になる。
521 .BI "void get_myaddress(struct sockaddr_in *" addr );
528 を扱うライブラリ・ルーティンは使用しない。ポート番号は常に
533 .BI "struct pmaplist *pmap_getmaps(struct sockaddr_in *" addr );
537 サービスのためのユーザインターフェースであり、
540 にあるホストの現在の RPC プログラムからポート番号へのマッピングの一覧を返す。
541 このルーティンが NULL を返す場合もある。
542 .RB ` "rpcinfo \-p" '
546 .BI "unsigned short pmap_getport(struct sockaddr_in *" addr ,
547 .BI " unsigned long " prognum ", unsigned long " versnum ,
548 .BI " unsigned int " protocol );
552 サービスのためのユーザ・インターフェースで、
559 をサポートするサービスが待っているポート番号を返す。
561 の値はほとんどの場合 IPPROTO_UDP か IPPROTO_TCP である。
565 サービスの参照に失敗したことを意味する。後者の場合は大域変数
570 .BI "enum clnt_stat pmap_rmtcall(struct sockaddr_in *" addr ,
571 .BI " unsigned long " prognum ", unsigned long " versnum ,
572 .BI " unsigned long " procnum ,
573 .BI " xdrproc_t " inproc ", char *" in ,
574 .BI " xdrproc_t " outproc ", char *" out ,
575 .BI " struct timeval " tout ", unsigned long *" portp );
579 サービスのためのユーザ・インターフェースで、
585 RPC 呼び出しを生成し、そのホスト上のプロシジャを呼び出す。
588 はプロシジャが成功した場合にはプログラムのポート番号に修正される。
594 このプロシジャは \(lqping\(rq のみに使用すべきである。
595 .BR clnt_broadcast ()
599 .BI "bool_t pmap_set(unsigned long " prognum ", unsigned long " versnum ,
600 .BI " unsigned int " protocol ", unsigned short " port );
604 サービスのためのユーザ・インターフェースで、
605 .RI [ prognum , versnum , protocol\fR]
617 このルーティンは成功した場合には 1 を返す。失敗した場合にはゼロを返す。
622 .BI "bool_t pmap_unset(unsigned long " prognum ", unsigned long " versnum );
626 サービスのためのユーザ・インターフェースで、
627 .RI [ prognum , versnum , *\fR]
632 サービスから削除する。このルーティンは成功した場合は 1 を返す。
636 .BI "int registerrpc(unsigned long " prognum ", unsigned long " versnum ,
637 .BI " unsigned long " procnum ", char *(*" procname ")(char *),"
638 .BI " xdrproc_t " inproc ", xdrproc_t " outproc );
651 がパラメーターへのポインターを持って呼び出される。
653 は静的な結果へのポインターを返す必要がある。
655 はパラメーターをデコードするために使用される。
658 このルーティンは登録に成功した場合にはゼロを返す。
661 警告: この形式で登録されたリモート・プロシジャは
662 UDP/IP 通信を使用する。制限に関しては
667 .BI "struct rpc_createerr " rpc_createerr ;
670 成功しなかった RPC クライアント生成ルーティンによって設定される大域変数。
671 .BR clnt_pcreateerror ()
672 ルーティンが理由を表示するために使用する。
675 .BI "void svc_destroy(SVCXPRT *" xprt );
680 の RPC サービスを破壊する。破壊には通常、
682 を含めて、私的なデータ構造体の破棄が含まれている。
688 .BI "fd_set " svc_fdset ;
691 RPC サービス側のファイル・ディスクリプターのビットマスクを反映した大域変数。
693 システムコールのパラメーターのために利用できる。これは
696 を呼び出さなずに、独自の非同期イベント処理を用いる場合にのみ意味がある。
701 呼び出しや生成ルーティンの後に変更されているかもしれない。
708 に似ているが、32 ディスクリプターに制限されている。
714 .BI "svc_freeargs(SVCXPRT *" xprt ", xdrproc_t " inproc ", char *" in );
720 RPC/XDR システムによって割り当てられたデータを解放する。
721 このルーティンは解放に成功した場合には 1 を返す。
725 .BI "svc_getargs(SVCXPRT *" xprt ", xdrproc_t " inproc ", char *" in );
728 このマクロは RPC サービス通信ハンドル
730 に関連付けられた RPC 要求の引き数をデコードする。パラメーター
734 は引き数をデコードするための XDR ルーティンである。
735 このルーティンはデコードに成功した場合は 1 を返す。
739 .BI "struct sockaddr_in *svc_getcaller(SVCXPRT *" xprt );
744 に関連付けられたプロシジャの呼び出し元のネットワーク・アドレスを
748 .BI "void svc_getreqset(fd_set *" rdfds );
753 を呼び出さず、独自の非同期イベント処理を実装する場合にのみ意味がある。
757 RPC 要求が到着したと返した場合にのみ呼び出される。
759 は結果の読み込みファイル・ディスクリプターのビットマスクである。
762 の値に関連付けられた全てのソケットのサービスが行なわれた時に
766 .BI "void svc_getreq(int " rdfds );
770 に似ているがディスクリプターの数が 32 に制限されている。
776 .BI "bool_t svc_register(SVCXPRT *" xprt ", unsigned long " prognum ,
777 .BI " unsigned long " versnum ,
778 .BI " void (*" dispatch ")(svc_req *, SVCXPRT *),"
779 .BI " unsigned long " protocol );
794 .RI [ prognum , versnum , protocol\fR]
795 の組み合わせと \fIxprt\->xp_port\fR とのマッピングがローカルの
809 dispatch(struct svc_req *request, SVCXPRT *xprt);
814 ルーティンは成功した場合は 1 を返す。失敗した場合はゼロを返す。
817 .B "void svc_run(void);"
824 を使用して適切なサービス・プロシジャを呼び出す。
830 .BI "bool_t svc_sendreply(SVCXPRT *" xprt ", xdrproc_t " outproc \
834 RPC サービス配分ルーティンによってリモート・プロシジャ・コールの結果を
838 はその要求に関連付けられた通信ハンドルである。
840 は結果をエンコードするために使用する XDR ルーティンである。
842 は結果のアドレスである。このルーティンは成功した場合は 1 を返す。
846 .BI "void svc_unregister(unsigned long " prognum ", unsigned long " versnum );
850 .RI [ prognum , versnum ]
852 .RI [ prognum , versnum , *\fR]
853 の組み合わせからポート番号へのマッピングを全て削除する。
856 .BI "void svcerr_auth(SVCXPRT *" xprt ", enum auth_stat " why );
859 認証エラーによりリモート・プロシジャ・コールの実行を拒否された
860 場合にサービス配分ルーティンによって呼び出される。
863 .BI "void svcerr_decode(SVCXPRT *" xprt );
867 サービス配分ルーティンによって呼び出される。
872 .BI "void svcerr_noproc(SVCXPRT *" xprt );
875 要求のあったプロシジャ番号が実装されていない場合に
879 .BI "void svcerr_noprog(SVCXPRT *" xprt );
882 RPC パッケージに要求されたプログラムが登録されていない場合に呼び出される。
883 サービスの実装には通常、このルーティンは必要ない。
886 .BI "void svcerr_progvers(SVCXPRT *" xprt );
889 RPC パッケージに要求されたバージョンのプログラムが登録されていない場合に
890 呼び出される。サービスの実装には通常、このルーティンは必要ない。
893 .BI "void svcerr_systemerr(SVCXPRT *" xprt );
896 特定のプロトコルによってカバーされていなシステム・エラーが
897 検出された場合にサービス配分ルーティンによって呼び出される。
898 例えば、サービスがそれ以上、記憶装置を割り当てることができない場合には
899 このルーティンが呼び出されるかもしれない。
902 .BI "void svcerr_weakauth(SVCXPRT *" xprt );
905 認証パラメータが足りないためにリモート・プロシジャ・コールの実行を
906 拒否された場合にサービス配分ルーティンによって呼び出される。
908 .B "svcerr_auth(xprt, AUTH_TOOWEAK)"
912 .BI "SVCXPRT *svcfd_create(int " fd ", unsigned int " sendsize ,
913 .BI " unsigned int " recvsize );
916 任意のオープンされたディスクリプター上にサービスを作成する。
918 TCP のようなストリーム・プロトコルで接続されたソケットである。
922 には送信バッファと受信バッファの大きさを指定する。もしゼロが指定された
926 .BI "SVCXPRT *svcraw_create(void);"
929 このルーティンは擬似 RPC サービス通信を生成して、そのポインターを返す。
930 通信は実際にはそのプロセスのアドレス空間にあるバッファなので
931 対応する RPC クライアントは同じアドレス空間にいる必要がある。
932 .BR clntraw_create ()
935 RPC のシミュレーションや、カーネル・インターフェースに影響されずに応答時間などの
936 RPC オーバヘッドを取得ができる。このルーティンは失敗した場合は NULL を返す。
939 .BI "SVCXPRT *svctcp_create(int " sock ", unsigned int " send_buf_size ,
940 .BI " unsigned int " recv_buf_size );
944 RPC サービス通信を作成し、それへのポインターを返す。
951 でも良い。この場合は新しいソケットが作成される。
952 もしソケットがローカルな TCP ポートに bind されていない場合は、
953 このルーティンが適当なポートに bind する。
954 補完された場合、\fIxprt\->xp_sock\fR には通信のソケット・
955 ディスクリプターが、\fIxprt\->xp_port\fR には通信のポート番号が
957 このルーティンは失敗した場合は NULL を返す。
958 TCP に基づいた RPC はバッファされた I/O を使用するため、
960 ゼロを指定した場合は適切なデフォルトが選択される。
963 .BI "SVCXPRT *svcudp_bufcreate(int " sock ", unsigned int " sendsize ,
964 .BI " unsigned int " recosize );
967 このルーティンは UDP/IP に基づいた RPC サービス通信を作成し、
974 でも良い。この場合は新しいソケットが作成される。
975 ソケットがローカルの UDP ポートに bind されていない場合には
976 このルーティンは適当なポートに bind する。
977 補完された場合、\fIxprt\->xp_sock\fR に通信のソケットの
978 ディスクリプターが、\fIxprt\->xp_port\fR に通信のポート番号が
979 設定される。このルーティンは失敗した場合には NULL を返す。
981 これによりユーザは UDP に基づいた RPC メッセージで
982 使用できる送信パケットおよび受信パケットの最大サイズを指定できる。
985 .BI "SVCXPRT *svcudp_create(int " sock );
988 送信パケットと受信パケットのサイズを同じデフォルトの値 \fISZ\fP に指定した
989 \fIsvcudp_bufcreate(sock,SZ,SZ)\fP と等価である。
992 .BI "bool_t xdr_accepted_reply(XDR *" xdrs ", struct accepted_reply *" ar );
995 RPC 応答メッセージをエンコードするのに使用する。このルーティンは
997 RPC-形式のメッセージを作成しようとする場合に便利である。
1000 .BI "bool_t xdr_authunix_parms(XDR *" xdrs ", struct authunix_parms *" aupp );
1003 UNIX 形式の証明書を記述するために使用する。このルーティンは
1004 RPC 認証パッケージを使用せずにこれらの証明書を作成しようとする場合に便利である。
1007 .BI "void xdr_callhdr(XDR *" xdrs ", struct rpc_msg *" chdr );
1010 RPC 呼び出しのヘッダー・メッセージを記述するために使用する。
1011 このルーティンは RPC パッケージを使用せずに
1012 RPC-形式のメッセージを作成しようとする場合に便利である。
1015 .BI "bool_t xdr_callmsg(XDR *" xdrs ", struct rpc_msg *" cmsg );
1018 RPC 呼び出しメッセージを記述するのに使用する。
1019 このルーティンは RPC パッケージを使用せずに
1020 RPC-形式のメッセージを作成しようとする場合に便利である。
1023 .BI "bool_t xdr_opaque_auth(XDR *" xdrs ", struct opaque_auth *" ap );
1026 PRC 認証情報メッセージを記述するために使用する。
1027 このルーティンは RPC パッケージを使用せずに
1028 RPC-形式のメッセージを作成しようとする場合に便利である。
1031 .BI "bool_t xdr_pmap(XDR *" xdrs ", struct pmap *" regs );
1036 プロシジャへのパラメーターを外部的に記述するために使用する。
1039 インターフェースを使用せずに、これらのパラメーターを
1043 .BI "bool_t xdr_pmaplist(XDR *" xdrs ", struct pmaplist **" rp );
1046 ポートのマッピングのリストを外部的に記述するために使用する。
1049 インターフェースを使用せずに、これらのパラメーターを
1053 .BI "bool_t xdr_rejected_reply(XDR *" xdrs ", struct rejected_reply *" rr );
1056 RPC 応答メッセージを記述するために使用する。このルーティンは
1058 RPC-形式のメッセージを作成したい場合に便利である。
1061 .BI "bool_t xdr_replymsg(XDR *" xdrs ", struct rpc_msg *" rmsg );
1064 RPC 応答メッセージを記述するために使用する。
1065 このルーティンは RPC パッケージを使用せずに、
1066 RPC 形式のメッセージを作成したい場合に便利である。
1069 .BI "void xprt_register(SVCXPRT *" xprt );
1072 RPC サービス通信ハンドルを生成した後に、それら自身を
1073 RPC サービス・パッケージに登録する必要がある。
1076 を修正する。サービスの実装者は通常、このルーティンは必要ない。
1079 .BI "void xprt_unregister(SVCXPRT *" xprt );
1082 RPC サービス通信ハンドルを破壊する前に、それを
1083 RPC 通信パッケージから登録解除する必要がある。
1086 を修正する。サービスの実装者は通常、このルーティンは必要ない。
1088 .\" 今現在は、この配布物 (LDP_man-pages) には rpc_secure.3 は入っていない
1089 .\" -- MTK, 19 Sep 05
1090 .\" .BR rpc_secure (3),
1095 Remote Procedure Calls: Protocol Specification
1097 Remote Procedure Call Programming Guide
1099 rpcgen Programming Guide
1102 .IR "RPC: Remote Procedure Call Protocol Specification" ,
1103 RFC\ 1050, Sun Microsystems, Inc.,