2016-06-21 15 views
0

私は、プログラムの実行にパラメータを渡すことができます。プログラムの終了時に値を返す

すなわち:

myprogram.exe param1 param2 [...] 

しかし、私は(と言う私は、呼び出し元のプロセスにPARAM1およびPARAM2をエコーし​​たかった)プログラムの終了時に、いくつかの値を取得したい場合は、そうすることの私が知っている唯一の方法は次のようになり(大/複数のパラメータでは実用的ではない)終了コードを使用するか、一時ファイル経由で渡すことができます。

プログラムの終了時に複数の値を取得するのと同様に、プログラムの開始時に複数の引数を渡す方法と同じようなものがありますか?

+0

@ケビン:いくつかの追加メカニズムを使用せずに、プログラムから終了コード以外を直接渡すことはできません。 –

+0

彼はコンソールプロジェクトについて話していたことに気づいていませんでした。 – Kevin

答えて

1

Unixシステムでは、1つのプログラムの出力を次の入力にパイプすることで複雑なタスクを実装するのが一般的です。

最初のプログラムの出力をstdoutに書き出し(たとえばConsole.WriteLineを使用)、次のプログラムはstdinから読み込み、処理をさらに処理するために必要なデータを取得します。

これは、.NET/Windows環境でもうまく実行できます。

これは、あるプログラムから次のプログラムに状態を​​渡す、より現代的な手段を使用することがより望ましいことです。たとえば、両方のアクセス権を持つデータベースに状態を書き込むことも、メッセージキューを使って情報を渡すこともできます。

名前付きパイプなどのメカニズムを使用して実行中の2つのプログラム間でも、情報を渡すことができます。

すべてのコードを制御できる場合は、複数のプログラムの機能をライブラリ(DLL)に移動し、そのライブラリを使用するプロセス全体を調整する新しいプログラムを作成することもできます。

多くのオプションがあります。最適な解決策は、達成したいことに依存します。

関連する問題