GoGPT Best VPN GoSearch

OnWorksファビコン

rpcgen - クラウド上のオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーター上の OnWorks 無料ホスティング プロバイダーで rpcgen を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド rpcgen です。

プログラム:

NAME


rpcgen - RPC プロトコル コンパイラ

SYNOPSIS


rpcgen ファイル内
rpcgen [-NS[=]] [-T] [-K ドライ] ファイル内
rpcgen -c|-h|-l|-m|-M|-t [-または アウトファイル ] ファイル内
rpcgen [-私] -s ネットタイプ [-または アウトファイル] ファイル内
rpcgen -n ネットID [-または アウトファイル] ファイル内

DESCRIPTION


rpcgen は、RPC プロトコルを実装するための C コードを生成するツールです。 への入力 rpcgen
は、RPC 言語 (リモート プロシージャ コール言語) として知られる C に似た言語です。

rpcgen 通常、最初の概要のように、入力ファイルを受け取り、
最大 XNUMX つの出力ファイルを生成します。 もし ファイル内 という名前 proto.xをタップし、その後、 rpcgen 意志
にヘッダー ファイルを生成します proto.h、XDR ルーチン proto_xdr.c、サーバー側のスタブ
proto_svc.c、およびクライアント側のスタブ proto_clnt.c。 とともに -T オプションで、それも行われます
RPCディスパッチテーブルを生成します proto_tbl.i。 とともに -Sc オプションで、それも行われます
クライアント上でリモート プロシージャを使用する方法を示すサンプル コードを生成します。
側。 このコードは次のように作成されます。 proto_client.c。 とともに -H.H オプションで、それも行われます
リモート プロシージャの記述方法を示すサンプル サーバー コードを生成します。
このコードは次のように作成されます。 proto_server.c.

作成されたサーバーは、ポート モニターの両方によって起動できます (たとえば、 inetd or 聞く)
またはそれ自体で。 ポート モニターによって開始されると、ポート モニター専用のサーバーが作成されます。
ファイル記述子のトランスポート 0 を超えてた。 トランスポートの名前は次のとおりです。
環境変数の設定によって指定される PM_TRANSPORT。 サーバーが
によって生成されます rpcgen が実行されると、すべてのトランスポートのサーバー ハンドルが作成されます
で指定 ネットパス 環境変数、または設定されていない場合はサーバー ハンドルを作成します
すべての目に見えるトランスポートに対して、 /etc/netconfig ファイル。 注: トランスポートが選択されています
コンパイル時ではなく実行時です。

ポートモニター用に構築された場合 (rpcgen -I)、サーバーは自己起動型であるため、
デフォルトでは背景そのもの。 特別な定義シンボル RPC_SVC_FG を実行するために使用できます
フォアグラウンドのサーバープロセス。

XNUMX 番目の概要は、より多くの作品を作成できる特別な機能を提供します。
洗練された RPC サーバー。 これらの機能には、ユーザーが提供するサポートが含まれます #定義  
RPC ディスパッチ テーブル。 RPC ディスパッチ テーブルのエントリには次のものが含まれます。
· そのプロシージャに対応するサービス ルーチンへのポインタ、
· 入力引数と出力引数へのポインタ
· これらのルーチンのサイズ
サーバーはディスパッチテーブルを使用して認可を確認し、サービスを実行できます。
ルーティーン; クライアント ライブラリは、ストレージ管理の詳細を処理するためにこれを使用する場合があります。
XDRデータ変換。

上に示した他の XNUMX つのシノプシスは、すべてのデータを生成したくない場合に使用されます。
出力ファイルですが、特定のファイルのみです。 それらの使用例のいくつかは、「」で説明されています。
以下の例セクション。 いつ rpcgen で実行されます -s オプションで、サーバーを作成します
その特定のクラスのトランスポート。 で実行すると、 -n オプションを選択すると、
によって指定されたトランスポート用のサーバー ネットID。 場合 ファイル内 指定されていません、 rpcgen 受け入れる
標準入力。

C プリプロセッサ、 cc -E [見る cc(1)] は、実際に実行される前に入力ファイルに対して実行されます。
によって解釈される rpcgen。 出力ファイルの種類ごとに、 rpcgen 特別なものを定義します
によって使用されるプリプロセッサ シンボル rpcgen プログラマー:

RPC_HDR ヘッダー ファイルにコンパイルするときに定義されます
RPC_XDR XDR ルーチンにコンパイルするときに定義される
RPC_SVC サーバー側のスタブにコンパイルするときに定義されます
RPC_CLNT クライアント側のスタブにコンパイルするときに定義されます
RPC_TBL RPC ディスパッチテーブルにコンパイルするときに定義されます

` で始まる任意の行%' は解釈されずに出力ファイルに直接渡されます。
rpcgen.

で参照されるすべてのデータ型について ファイル内, rpcgen というルーチンが存在すると仮定します。
文字列 xdr_ データ型の名前の前に付加されます。 このルーチンが存在しない場合は、
RPC/XDR ライブラリを提供する必要があります。 未定義のデータ型を指定すると、
XDR ルーチンのカスタマイズ。

次のオプションを使用できます。

-a クライアント側とサーバー側のサンプル コードを含むすべてのファイルを生成します。

-b これにより、SunOS4.1 スタイルの rpc のコードが生成されます。 後進用です
互換性。 これがデフォルトです。

-5 これにより、SysVr4 スタイルの rpc のコードが生成されます。 トランスポートによって使用されます
Svr4 システムにある独立した RPC。 デフォルトでは、rpcgen は次のコードを生成します。
SunOS4.1 の rpc タイプ。

-c XDR ルーチンにコンパイルします。

-C ANSI C でコードを生成します。このオプションは、コンパイル可能なコードも生成します。
C++ コンパイラを使用して。 これがデフォルトです。

-k K&R C でコードを生成します。デフォルトは ANSI C です。

-D[=]
シンボルを定義する 。 と同等 #定義する ソース内のディレクティブ。 いいえの場合
与えられる、 として定義される 1。 このオプションは複数指定できます。
一度。

-h にコンパイルします C データ定義 (ヘッダー ファイル)。 -T オプションは以下で使用できます
RPC ディスパッチ テーブルをサポートするヘッダー ファイルを生成するために結合します。

-I inetdから起動できるサービスを生成します。 デフォルトでは、
で選択されたトランスポートを処理する静的サービス -s。 使い方 -I 起動を許可します
いずれかの方法によるサービス。

-K ドライ
デフォルトでは、次を使用して作成されたサービスは、 rpcgen wait 120 サービスを行ってから数秒後
終了する前にリクエストしてください。 この間隔は、 -K 国旗。 作成するには
リクエストを処理するとすぐに終了するサーバー、 -K 0 に使える。 に
決して終了しないサーバーを作成する場合、適切な引数は次のとおりです。 -K -1.

サーバーを監視する場合、次のような一部のポート監視が行われます。 聞く(1万)、 常に をスポーンする
サービスリクエストに応じた新しいプロセス。 サーバーが次の状態になることがわかっている場合
このようなモニターで使用すると、サーバーは完了時にすぐに終了する必要があります。 ために
そのようなサーバー、 rpcgen と一緒に使用する必要があります -K -1.

-l クライアント側のスタブにコンパイルします。

-m サーバー側のスタブにコンパイルしますが、「メイン」ルーチンは生成しません。 このオプション
コールバック ルーチンを実行する場合や、独自のルーチンを作成する必要があるユーザーにとって便利です。
初期化を行う「メイン」ルーチン。

-M rpcgen 間で引数と結果を渡すためのマルチスレッドセーフなスタブを生成します。
生成されたコードとユーザーが作成したコード。 このオプションは、次のことを行うユーザーに役立ちます。
コード内でスレッドを使用します。

-n ネットID
で指定されたトランスポートのサーバー側スタブにコンパイルします。 ネットID。 あるはずです
のエントリーになる ネットID netconfig データベース内。 このオプションはさらに指定することもできます
複数のトランスポートを提供するサーバーをコンパイルするために、複数のトランスポートを実行します。

-N rpcgen の新しいスタイルを使用します。 これにより、プロシージャに複数の引数を指定できるようになります。 それ
また、C によく似たパラメータ受け渡しのスタイルも使用します。
引数をリモート プロシージャに渡す場合、ポインタをリモート プロシージャに渡す必要はありません。
引数ではなく引数そのもの。 この動作は、古いスタイルの動作とは異なります。
rpcgen で生成されたコード。 newstyle は後進のためデフォルトのケースではありません
互換性。

-o アウトファイル
出力ファイルの名前を指定します。 何も指定されていない場合は、標準出力が使用されます。
(-c, -h, -l, -m, -n, -s, -Sc, -SM, -H.H, -t モードのみ)。

-s ネットタイプ
クラスに属するすべてのトランスポートのサーバー側スタブにコンパイルします。
ネットタイプ。 サポートされているクラスは、 ネットパス, 目に見える, 回路_n, 回路_v,
データグラム_n, データグラム_v, TCP, UDP [見る rpc(3N) に関連付けられた意味については、
これらのクラス]。 このオプションは複数回指定できます。 注: トランスポート
コンパイル時ではなく実行時に選択されます。

-Sc リモート プロシージャの使用方法と、リモート プロシージャにバインドする方法を示すサンプル コードを生成します。
rpcgen によって生成されたクライアント側のスタブを呼び出す前に、サーバーにアクセスします。

-SM アプリケーションのコンパイルに使用できるサンプル Makefile を生成します。

-H.H サーバー側でリモート プロシージャのスケルトン コードを生成します。 するでしょう
リモート プロシージャの実際のコードを入力する必要があります。

-t RPC ディスパッチ テーブルにコンパイルします。

-T RPC ディスパッチ テーブルをサポートするコードを生成します。

オプション -c, -h, -l, -m, -s   -t 特定の型を生成するためにのみ使用されます
ファイルのオプション -D   -T はグローバルであり、他のオプションと一緒に使用できます。

注意事項


RPC 言語は構造のネストをサポートしていません。 回避策として、構造物では次のことが可能です。
トップレベルで宣言され、その名前は他の構造内で使用されます。
同じ効果が得られます。

プログラム定義を使用すると、見かけ上のスコープが設定されていないため、名前の衝突が発生する可能性があります。
本当に当てはまります。 これらのほとんどは、プログラム、バージョン、
手順と種類。

で生成されたサーバーコード -n オプションは、によって示されるトランスポートを指します。 ネットID  
したがって、非常にサイト固有です。

実施例


次の例:

$ rpcgen -T prot.x

次の XNUMX つのファイルを生成します。 保護, prot_clnt.c, prot_svc.c, prot_xdr.c   prot_tbl.i.

次の例では、C データ定義 (ヘッダー ファイル) を標準出力に送信します。

$ rpcgen -h prot.x

テスト版を送信するには、 -DTEST、すべてのトランスポートに属するサーバー側のスタブ
クラスへ データグラム_n 標準出力には、以下を使用します。

$ rpcgen -s データグラム_n -DTEST prot.x

で示されるトランスポートのサーバー側スタブを作成するには ネットID TCP、 つかいます:

$ rpcgen -n TCP -o prot_svc.c prot.x

onworks.net サービスを使用してオンラインで rpcgen を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad




×
Advertisement
❤️ここでショッピング、予約、購入してください。料金はかかりません。これにより、サービスが無料で維持されます。