言語のコードを生成するツールである。言語に似た言語である。ルーチン4proto_xdr.c1、サーバ側スタブ4proto_svc.c1、クライアント側スタブ4proto_clnt.c1を生成する。ディスパッチテーブルn4proto_tbl.i1も生成する。4-Sc1オプションを指定すると、クライアント側での遠隔手続きの使用法を説明するサンプルコードも生成する。このコードは4proto_client.c1に書き出される。遠隔手続きの書き方を説明するサンプルのサーバ用コードを生成する。このコードは4proto_server.c1に書き出される。起動することも、それ自身で起動することもできる。引き渡すトランスポートのためだけのサーバを生成する。トランスポートの名前は環境変数4PM_TRANSPORT1を設定することで指定しなければならない。4rpcgen1で作成されたサーバが実行されると、サーバは環境変数4NETPATH1で指定された全てのトランスポート用にサーバハンドルを生成する。環境変数4NETPATH1が設定されていない場合、4/etc/netconfig1ファイルに記述された全ての可視トランスポート用にサーバハンドルを生成する。注意:トランスポートはコンパイル時ではなく実行時に選択される。サーバが自分自身で開始する場合、デフォルトではバックグラウンド実行に移る。特殊定義シンボル4RPC_SVC_FG1が使われる。サーバを生成する特別な機能を提供する。ディスパッチテーブルのサポートが含まれる。ディスパッチテーブルのエントリには以下のものがある。入出力引き数へのポインタ»これらのルーチンのサイズサーバは、認証をチェックした後にサービスルーチンを実行するために、ディスパッチテーブルを使うことができる。データ変換を詳細に扱うために、ディスパッチテーブルを使うことができる。つのファイルが必要な場合に使われる。いくつかの使用例が以下の「例」のセクションで説明されている。特定クラスのトランスポート用のサーバを生成する。4-n1オプション付きで実行された場合、2netid1で指定したトランスポート用のサーバを生成する。2infile1が指定されていない場合、4rpcgen1は標準入力から入力を受け付ける。4rpcgen1は各タイプの出力ファイルに対して、4rpcgen1プログラマが使う特別なプリプロセッサシンボルを定義する。4RPC_HDR1ヘッダファイルにコンパイルする際に定義される。ルーチンにコンパイルする際に定義される。4RPC_SVC1サーバ側スタブにコンパイルする際に定義される。4RPC_CLNT1クライアント側スタブにコンパイルする際に定義される。ディスパッチテーブルにコンパイルする際に定義される。`4%1'で始まる全ての行は、4rpcgen1に解釈されることなく、出力ファイルに直接そのまま渡される。2infile1で参照される全てのデータタイプに対して、4rpcgen1はデータタイプ名の前に4xdr_1を付けた名前のルーチンが存在することを仮定する。ライブラリにない場合、そのルーチンを提供しなければならない。ルーチンをカスタマイズすることができる。以下のオプションが使用可能である。4-a1クライアント側とサーバ側のサンプルコードを含む全てのファイルを生成する。昔のコードとの互換性のためにある。これがデフォルトである。