RPC プログラムは、次の構文を使用して宣言します。
program-definition: "program" program-ident "{" version-list "}" "=" value; version-list: version ";" version ";" version-list version: "version" version-ident "{" procedure-list "}" "=" value; procedure-list: procedure ";" procedure ";" procedure-list procedure: type-ident procedure-ident "(" type-ident ")" "=" value;
-N オプションを指定すると、rpcgen は次の構文も認識します。
procedure: type-ident procedure-ident "(" type-ident-list ")" "=" value; type-ident-list: type-ident type-ident "," type-ident-list
たとえば以下のようになります。
/* * time.x: 時間を取得するか、または設定してください。 * 時間は、1970 年 1 月 1 日 0:00 から経過した秒数で表されます。 */ program TIMEPROG { version TIMEVERS { unsigned int TIMEGET(void) = 1; void TIMESET(unsigned) = 2; } = 1; } = 0x20000044;
void
引き数型は、引数が渡されないことを意味していることに注意してください。
このファイルは、出力ヘッダーファイルの、以下の #define 文にコンパイルされます。
#define TIMEPROG 0x20000044 #define TIMEVERS 1 #define TIMEGET 1 #define TIMESET 2