2012-01-02 16 views
0

java(Minecraft)にプログラムがあり、そのサーバーの部分ではターミナルで開き、ユーザーにコマンドの入力を求めるとともに、進行状況のロードなどのフィードバックを求めますもの。自動的にターミナルにコマンドを送信し、応答を受け取るためにC++の "ラッパー"を作る方法はありますか?実行可能ファイルの入力と出力をC++でラップする

GUI要素を使ってsayやkickなどのコマンドを自動化することができました。私はOSX LionでMacを走らせています。

答えて

2

おそらく、stdin/stdoutを読み書きします。バイナリ(この場合はjava.exe)をC++で実行し、その読み書き方法を調べる必要があります。あるいは、テキスト出力を解析することなくコントロールを提供するラッパーをJavaで記述することもできます。

+0

申し訳ありませんが、私は実行していたOSを入れるのを忘れていました。私がMacを使っていたのと同じだろうか? – alexy13

+0

はい。その場合の実行可能ファイルは/ usr/bin/javaですが、コンセプトは同じです。 –

0

この質問に対する回答は、オペレーティングシステムによって異なります。異なるシステムでは、標準の入出力チャネルを処理する方法が異なります。 UNIXシステムでは、パイプ(2)(または標準出力と標準エラーを別々に取得する場合は2つ)を作成し、「サーバー」をfork(2)し、close(2)とdupさまざまなファイル記述子を適切な場所に配置し、実際のプログラムをexecve(2)します。この後、さまざまなディスクリプタを読み書きできます。

+0

Yikes、それはたくさんのものです。利用可能な例がありますか? – alexy13

+0

まあ、私はどちらかを書くかGoogleのいずれかをする必要があります。 UNIXおよび/またはPOSIX用の適切なタグを見ることで、おそらくここでFAQが明らかになります(ただし、試してみません)。キーは「パイプ」です。つまり、例を見つけようとすれば、それは私が探しているものです。 –

+0

お返事ありがとうございます! – alexy13

関連する問題