日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
RPC(3) FreeBSD ライブラリ関数マニュアル RPC(3) 名称 rpc -- リモートプロシージャコールのためのライブラリルーチン ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <rpc/rpc.h> #include <netconfig.h> 解説 これらのルーチンは、C 言語プログラムがネットワークの向こう側の他のマシン でプロシージャ呼び出しを行なえるようにします。最初に、クライアントは、リ クエスト (要求) をサーバに送ります。リクエスト (要求) の受け取りにおい て、サーバは、要求されたサービスを実行するためにディスパッチルーチンを呼 び出し、次に、応答を送り返します。 すべての RPC ルーチンは、ヘッダ <rpc/rpc.h> を必要とします。struct netconfig を必要とするルーチンは、また、<netconfig.h> が含まれることを必 要とします。 ネットタイプ (nettype) ハイレベルな RPC インタフェースルーチンのいくつかは、引数の 1 つ (例え ば、clnt_create(), svc_create(), rpc_reg(), rpc_call()) として nettype 文 字列を取ります。この文字列は、特別のアプリケーションで使用することができ るトランスポートのクラスを定義します。 nettype 引数は、次の 1 つです: netpath NETPATH 環境変数でそれらのトークン名によって示された転送を選 びます。NETPATH は、設定されていないか NULL です、そのデフォ ルトは、"visible" です。"netpath" は、デフォルトの nettype で す。 visible /etc/netconfig ファイルの中に visible フラグ (v) に設定した転 送を選びます。 circuit_v /etc/netconfig ファイルのエントリから接続指向の転送 (セマン ティック (意味) "tpi_cots" または "tpi_cots_ord") のみで選ば れたものを除いてこれは、"visible" と同じです。 datagram_v /etc/netconfig コネクションレス型データグラム転送 (セマン ティック (意味) "tpi_clts") のみで選ばれたものを除いてこれ は、"visible" と同じです。 circuit_n 接続指向のデータグラム転送 (セマンティック (意味) "tpi_cots" または "tpi_cots_ord") のみで選ばれたものを除いてこれは、 "netpath" と同じです。 datagram_n コネクションレス型データグラム転送 (セマンティック (意味) "tpi_clts") のみで選ばれたものを除いてこれは、"netpath" と同 じです。 udp これは、インターネット UDP のバージョン 4 と 6 の両方について 参照します tcp これは、インターネット TCP のバージョン 4 と 6 の両方について 参照します nettype が NULL であるなら、それは、"netpath" をデフォルトとします。転送 は、NETPATH 変数で左から右の順か、/etc/netconfig ファイルで上から下の順に 試みられます。 派生タイプ (derived types) RPC インタフェースで使用される派生タイプは、次のように定義されます: typedef uint32_t rpcprog_t; typedef uint32_t rpcvers_t; typedef uint32_t rpcproc_t; typedef uint32_t rpcprot_t; typedef uint32_t rpcport_t; typedef int32_t rpc_inline_t; データ構造体 RPC パッケージによって使用されるデータ構造体のいくつかは、以下に示されま す。 AUTH 構造体 /* * 認証インフォメーション。クライアントには、不透明です。 */ struct opaque_auth { enum_t oa_flavor; /* auth (認証) のフレイバ */ caddr_t oa_base; /* より多くの auth スタッフのアドレス */ u_int oa_length; /* MAX_AUTH_BYTES を超えない */ }; /* * auth ハンドル、クライアント側認証符号へのインタフェース。 */ typedef struct { struct opaque_auth ah_cred; struct opaque_auth ah_verf; struct auth_ops { void (*ah_nextverf)(); int (*ah_marshal)(); /* nextverf & シリアライズ */ int (*ah_validate)(); /* 検証を認証する */ int (*ah_refresh)(); /* 証明書をリフレッシュする */ void (*ah_destroy)(); /* この構造体を破壊する */ } *ah_ops; caddr_t ah_private; } AUTH; CLIENT 構造体 /* * クライアント rpc ハンドル。 * 個々の実装によって作成。 * クライアントは、初期値設定 auth に責任があります。 */ typedef struct { AUTH *cl_auth; /* 認証 */ struct clnt_ops { enum clnt_stat (*cl_call)(); /* リモート手続きを呼び出す */ void (*cl_abort)(); /* 呼び出しを中断 */ void (*cl_geterr)(); /* 指定したエラーコードを取得 */ bool_t (*cl_freeres)(); /* 結果を解放する */ void (*cl_destroy)(); /* この構造体を破壊する */ bool_t (*cl_control)(); /* rcp の ioctl() */ } *cl_ops; caddr_t cl_private; /* プライベートスタッフ */ char *cl_netid; /* ネットワーク識別子 */ char *cl_tp; /* デバイス名 */ } CLIENT; SVCXPRT 構造体 enum xprt_stat { XPRT_DIED, XPRT_MOREREQS, XPRT_IDLE }; /* * サーバ側転送ハンドル */ typedef struct { int xp_fd; /* サーバハンドルのためのファイル記述子 */ u_short xp_port; /* 廃止 */ const struct xp_ops { bool_t (*xp_recv)(); /* 着信要求を受信 */ enum xprt_stat (*xp_stat)(); /* 転送状態を取得 */ bool_t (*xp_getargs)(); /* 引数を取得 */ bool_t (*xp_reply)(); /* 応答送信 */ bool_t (*xp_freeargs)(); /* 引数のために割り付けたメモリを 解放 */ void (*xp_destroy)(); /* この構造体を破壊する */ } *xp_ops; int xp_addrlen; /* リモートアドレスの長さ. 廃止 */ struct sockaddr_in xp_raddr; /* 廃止 */ const struct xp_ops2 { bool_t (*xp_control)(); /* すべての関数で捕獲 */ } *xp_ops2; char *xp_tp; /* 転送プロバイダデバイス名 */ char *xp_netid; /* ネットワーク識別子 */ struct netbuf xp_ltaddr; /* ローカル転送アドレス */ struct netbuf xp_rtaddr; /* リモート転送アドレス */ struct opaque_auth xp_verf; /* raw 転送検証 */ caddr_t xp_p1; /* プライベート: svc ops によって使用 */ caddr_t xp_p2; /* プライベート: svc ops によって使用 */ caddr_t xp_p3; /* プライベート: svc lib によって使用 */ int xp_type /* 転送タイプ */ } SVCXPRT; svc_reg 構造体 struct svc_req { rpcprog_t rq_prog; /* サービスプログラム番号 */ rpcvers_t rq_vers; /* サービスプロトコルバージョン */ rpcproc_t rq_proc; /* 望みの手続き */ struct opaque_auth rq_cred; /* 配線からの raw creds */ caddr_t rq_clntcred; /* リードオンリ cooked cred */ SVCXPRT *rq_xprt; /* 関連転送 */ }; XDR 構造体 /* * XDR 操作。 * XDR_ENCODE は、タイプをストリーム中にコード化させます。 * XDR_DECODE は、ストリームからタイプを抽出させます。 * XDR_FREE は、XDR_DECODE 要求で割り付けられた空間を解放するためにを使用す * ることができます。 */ enum xdr_op { XDR_ENCODE=0, XDR_DECODE=1, XDR_FREE=2 }; /* * これは、外部データのユニット毎のバイト数です。 */ #define BYTES_PER_XDR_UNIT (4) #define RNDUP(x) ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \ * BYTES_PER_XDR_UNIT) /* * xdrproc_t は、コード化されるか復号化される各データタイプに存在して * います。 * xdrproc_t への 2 番目の引数は、不透明なポインタへのポインタです。 * 一般的に、不透明なポインタは、復号化されるためのデータタイプの * 構造体を指します。 * これが 0 を指すなら、タイプルーチンは、適切なサイズの動的記憶域 * を割り付けて、それを返すべきです。 * bool_t (*xdrproc_t)(XDR *, caddr_t *); */ typedef bool_t (*xdrproc_t)(); /* * XDR ハンドル。 * ストリームに適用されている操作、特定の実装のための操作 * ベクトルを含む */ typedef struct { enum xdr_op x_op; /* 操作; 早い追加パラメータ */ struct xdr_ops { bool_t (*x_getlong)(); /* 基本的なストリームから long を 取得 */ bool_t (*x_putlong)(); /* 基本的なストリームへ long を 出力 */ bool_t (*x_getbytes)(); /* 基本的なストリームから複数バイト を取得 */ bool_t (*x_putbytes)(); /* 基本的なストリームへ複数バイトを 出力 */ u_int (*x_getpostn)(); /* 始めからのバイトオフセットを返す */ bool_t (*x_setpostn)(); /* ストリームを再配置させる */ long * (*x_inline)(); /* バッファリングされたデータへの バッファの迅速なポインタ */ void (*x_destroy)(); /* この xdr_stream のプライベートを 解放 */ } *x_ops; caddr_t x_public; /* ユーザのデータ */ caddr_t x_private; /* プライベートデータへのポインタ */ caddr_t x_base; /* 位置情報のためにプライベートで使用 */ u_int x_handy; /* 特別のプライベート単語 */ } XDR; /* * netbuf 構造体。この構造体は、SysV システムで <xti.h> で定義されますが、 * NetBSD / FreeBSD は、XTI を使用しません。 * * 通常、buf は、struct sockaddr を指し、そして、len と maxlen は、 * それぞれそのソケットアドレスの長さと最大長を含みます。 * */ struct netbuf { unsigned int maxlen; unsigned int len; void *buf; }; /* * アドレスの形式と XTI t_bind 呼び出しのオプション引数。 * 互換性に提供しているだけであって、svc_tli_create() への引数を * 除いて、使用するべきではありません。 */ struct t_bind { struct netbuf addr; unsigned int qlen; }; ルーチンの索引 次のテーブルは、RPC ルーチンとそれらが説明されるマニュアル参照ページをリ ストしています: RPC ルーチン マニュアル参照ページ auth_destroy() rpc_clnt_auth(3) authdes_create() rpc_soc(3) authnone_create() rpc_clnt_auth(3) authsys_create() rpc_clnt_auth(3) authsys_create_default() rpc_clnt_auth(3) authunix_create() rpc_soc(3) authunix_create_default() rpc_soc(3) callrpc() rpc_soc(3) clnt_broadcast() rpc_soc(3) clnt_call() rpc_clnt_calls(3) clnt_control() rpc_clnt_create(3) clnt_create() rpc_clnt_create(3) clnt_create_timed() rpc_clnt_create(3) clnt_create_vers() rpc_clnt_create(3) clnt_create_vers_timed() rpc_clnt_create(3) clnt_destroy() rpc_clnt_create(3) clnt_dg_create() rpc_clnt_create(3) clnt_freeres() rpc_clnt_calls(3) clnt_geterr() rpc_clnt_calls(3) clnt_pcreateerror() rpc_clnt_create(3) clnt_perrno() rpc_clnt_calls(3) clnt_perror() rpc_clnt_calls(3) clnt_raw_create() rpc_clnt_create(3) clnt_spcreateerror() rpc_clnt_create(3) clnt_sperrno() rpc_clnt_calls(3) clnt_sperror() rpc_clnt_calls(3) clnt_tli_create() rpc_clnt_create(3) clnt_tp_create() rpc_clnt_create(3) clnt_tp_create_timed() rpc_clnt_create(3) clnt_udpcreate() rpc_soc(3) clnt_vc_create() rpc_clnt_create(3) clntraw_create() rpc_soc(3) clnttcp_create() rpc_soc(3) clntudp_bufcreate() rpc_soc(3) get_myaddress() rpc_soc(3) pmap_getmaps() rpc_soc(3) pmap_getport() rpc_soc(3) pmap_rmtcall() rpc_soc(3) pmap_set() rpc_soc(3) pmap_unset() rpc_soc(3) registerrpc() rpc_soc(3) rpc_broadcast() rpc_clnt_calls(3) rpc_broadcast_exp() rpc_clnt_calls(3) rpc_call() rpc_clnt_calls(3) rpc_reg() rpc_svc_calls(3) svc_create() rpc_svc_create(3) svc_destroy() rpc_svc_create(3) svc_dg_create() rpc_svc_create(3) svc_dg_enablecache() rpc_svc_calls(3) svc_fd_create() rpc_svc_create(3) svc_fds() rpc_soc(3) svc_freeargs() rpc_svc_reg(3) svc_getargs() rpc_svc_reg(3) svc_getcaller() rpc_soc(3) svc_getreq() rpc_soc(3) svc_getreqset() rpc_svc_calls(3) svc_getrpccaller() rpc_svc_calls(3) svc_kerb_reg() kerberos_rpc(3) svc_raw_create() rpc_svc_create(3) svc_reg() rpc_svc_calls(3) svc_register() rpc_soc(3) svc_run() rpc_svc_reg(3) svc_sendreply() rpc_svc_reg(3) svc_tli_create() rpc_svc_create(3) svc_tp_create() rpc_svc_create(3) svc_unreg() rpc_svc_calls(3) svc_unregister() rpc_soc(3) svc_vc_create() rpc_svc_create(3) svcerr_auth() rpc_svc_err(3) svcerr_decode() rpc_svc_err(3) svcerr_noproc() rpc_svc_err(3) svcerr_noprog() rpc_svc_err(3) svcerr_progvers() rpc_svc_err(3) svcerr_systemerr() rpc_svc_err(3) svcerr_weakauth() rpc_svc_err(3) svcfd_create() rpc_soc(3) svcraw_create() rpc_soc(3) svctcp_create() rpc_soc(3) svcudp_bufcreate() rpc_soc(3) svcudp_create() rpc_soc(3) xdr_accepted_reply() rpc_xdr(3) xdr_authsys_parms() rpc_xdr(3) xdr_authunix_parms() rpc_soc(3) xdr_callhdr() rpc_xdr(3) xdr_callmsg() rpc_xdr(3) xdr_opaque_auth() rpc_xdr(3) xdr_rejected_reply() rpc_xdr(3) xdr_replymsg() rpc_xdr(3) xprt_register() rpc_svc_calls(3) xprt_unregister() rpc_svc_calls(3) 関連ファイル /etc/netconfig 関連項目 getnetconfig(3), getnetpath(3), rpc_clnt_auth(3), rpc_clnt_calls(3), rpc_clnt_create(3), rpc_svc_calls(3), rpc_svc_create(3), rpc_svc_err(3), rpc_svc_reg(3), rpc_xdr(3), rpcbind(3), xdr(3), netconfig(5) FreeBSD 11.4 May 7, 1993 FreeBSD 11.4