rpcgen では、C 言語などの前処理命令をサポートしています。rpcgen の入力ファイルに入っている C 言語の前処理命令は、コンパイル前に処理されます。.x ソースファイルでは、標準 C のすべての前処理命令を使用できます。生成する出力ファイルのタイプによって、次の 5 つのシンボルが rpcgen によって定義されます。
rpcgen 入力ファイルのパーセント記号 (%) で始まる行はそのまま出力ファイルに書き出され、その行の内容には影響を及ぼしません。そのとき、意図した位置に出力されるとは限らないため注意が必要です。出力ファイルのどこに書き出されたか確認して、必要ならば編集し直してください。
表 3-1 rpcgen の前処理命令
シンボル |
使用目的 |
---|---|
ヘッダーファイルの出力 |
|
XDR ルーチンの出力 |
|
サーバー側スタブプログラムの出力 |
|
クライアント側スタブプログラムの出力 |
|
インデックステーブルの出力 |
例 3-7 に、簡単な rpcgen の例を示します。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 |