rpcgen では、ANSI C に準拠したコードも出力できます。それには -C フラグを指定します。ほとんどの場合、C 形式モードでのコンパイル にあるように -N も同時に指定します。
add.x のサーバー側テンプレート例を生成するには、コマンド行で rpcgen -N -C -Ss -o add_server_template.c add.x を実行します。
ここで、C++ 3.0 で記述されたサーバー上ではリモートプロシージャ名が接尾辞 _svc で終わっていなければならないことに特に注意してください。次の例では、add.x に対して、コンパイルフラグ -C を指定してクライアント側の add_1 とサーバー側の add_1_svc が生成されています。
/* * このファイルはテンプレートです。これを基にしてユーザー独自の関数を * 作成してください。 */ #include <c_varieties.h> #include "add.h" int * add_1_svc(int arg1, int arg2, struct svc_req *rqstp) { static int result; /* * ここにサーバープログラムのコードを挿入 */ return(&result); } |
この出力ファイルは、構文も構造も ANSI C に準拠しています。-C フラグを指定して生成したヘッダーファイルは、ANSI C でも C++ でも使用できます。