ONC+ 開発ガイド

前処理命令

rpcgen では、C 言語などの前処理命令をサポートしています。rpcgen の入力ファイルに入っている C 言語の前処理命令は、コンパイル前に処理されます。.x ソースファイルでは、標準 C のすべての前処理命令を使用できます。生成する出力ファイルのタイプによって、次の 5 つのシンボルが rpcgen によって定義されます。

rpcgen 入力ファイルのパーセント記号 (%) で始まる行はそのまま出力ファイルに書き出され、その行の内容には影響を及ぼしません。そのとき、意図した位置に出力されるとは限らないため注意が必要です。出力ファイルのどこに書き出されたか確認して、必要ならば編集し直してください。

rpcgen で使用される前処理命令を、次の表で示します。

表 3–1 rpcgen の前処理命令

シンボル 

使用目的 

RPC_HDR

ヘッダーファイルの出力 

RPC_XDR

XDR ルーチンの出力 

RPC_SVC

サーバー側スタブプログラムの出力 

RPC_CLNT

クライアント側スタブプログラムの出力 

RPC_TBL

インデックステーブルの出力 

次に、簡単な rpcgen コードの例を示します。rpcgen の前処理機能の使用方法に注意してください。


例 3–7 時刻プロトコルを記述する rpcgen ソースプログラム

/*
 * time.x: リモート時刻のプロトコル
 */
program TIMEPROG {
	version TIMEVERS {
			unsigned int TIMEGET() = 1;
	} = 1;
} = 0x20000044;
 
#ifdef RPC_SVC
%int *
%timeget_1()
%{
%	static int thetime;
%
%	thetime = time(0);
%	return (&thetime);
%}
#endif