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