RPCGEN(1) — NEWS-OS Programmer’s Manual
名称
rpcgen − RPC プロトコルコンパイラ
形式
rpcgen infile
rpcgen −c|−h|−l|−m [ −o outfile ] [ infile ]
rpcgen −s transport [ −o outfile ] [ infile ]
解説
rpcgen は、 RPC プロトコルをインプリメントするための Cのコードを生成するツールです。 rpcgen に入力する言語は、 RPC 言語 (Remote Procedure Call Language) として知られる C に似た言語です。 RPC 言語のシンタックスについては、マニュアルの ‘rpcgen’ Programming Guide をご参照ください。 rpcgen は、通常 第一形式で使われ、1つのインプットファイルから 4つのアウトプットファイルを作成しすます。 infile を prote.x とすると、 rpcgen は proto.h にヘダーファイルを、 proto_xdr.c に XDR ルーチンを、 proto_svc.c のサーバと proto_clnt.c のクライエントを作成します。 第一形式以外の形式は、すべてのアウトプットファイルでなく、 特定のファイルを作成したいときに使われます。 使用方法は、以下の 使用法 のセクションをご覧下さい。 C プリプロセッサ cpp(1) は稼働する際、 rpcgen に実際解釈される前の インプットファイルを 全部用いるので、 すべての cpp 制御文が rpcgen インプットファイル内で使用できます。 それぞれのアウトプットファイルのタイプに、 rpcgen は、 rpcgen プログラマーが使う特殊な cpp シンボルを定義します。
RPC_HDR
は、ヘダーファイルにコンパイルするときに定義されます。
RPC_XDR
は、 XDR ルーチンにコンパイルするときに定義されます。
RPC_SVC は、サーバをコンパイルするときに定義されます。
RPC_CLNT
は、クライエントをコンパイルするときに定義されます。 さらに rpcgen は、それ自身のプリプロセスはほとんどしません。 ‘%’ で始まる行は、 rpcgen に解釈されず、 そのまま直接アウトプットファイルに書き込まれます。 データタイプを未定義のままにしておくことにより、 いくつかの XDR ルーチンをカスタム化することができます。 rpcgen は未定義のデータタイプに対し、 頭に‘xdr_’の付くルーチンがあるものと仮定します。
オプション
−c XDR ルーチンをコンパイルする。
−h C データ定義 (ヘッダファイル) をコンパイルする。
−l クライエントをコンパイルする。
−m サーバをコンパイルする。 ただし “main” ルーチンを作成しない。 このオプションはコールバックルーチン、 または初期化するために独自の “main” ルーチンを 書かなければいけないときに役立ちます。
−o outfile
出力ファイル名の指定。 指定が省略された場合には標準出力が使用される (−c, −h, −l, −s モードのみ)。
−s transport
与えられたトランスポートを使用して、サーバをコンパイルする。 サポートされるトランスポートは udp と tcp です。 このオプションは、 サーバが複数のトランスポートをサービスできるようにコンパイルするため、 1回以上呼び出されます。
関連事項
cpp(1) NEWS-OS Reference Manual の中の ‘rpcgen’ Programming Guide
バグ
ネスティングはサポートされていません。 ストラクチャーは、トップレベルで定義でき、その名前を使って 同等のエフェクトが他のストラクチャー内で使用できます。 プログラム定義を使用するときに、 名前の衝突が起きることがあります。 これは外見上のスコープ(範囲)と実際とが一致しないときに発生します。 その多くは、 program、 version、 procedure、 type に特異な名前を使用することで避けることができます。
NEWS-OSRelease 4.1C