Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ rpcgen(1) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cpp(1)

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.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026