- ベストアンサー
C言語プログラムと外部ファイルを平行実行しながらデータのやり取り
起動するとシェル上で入力待ちになるexeファイルがあるのですが、これを外部から起動させ、 呼び出しよりも後の方で外部から入力情報を指定するということをしたいと思っています。 現在はnyuryoku.txtに入力情報を記述してログをとるためのlog.txtを用意し、 1. system("xx.exe > log.txt < nyuryoku.txt"); としているのですが、これと同じようなことをexeをいちいち起動させず、 呼び出し側と平行して常時起動状態にして、必要に応じて入力情報をあとから送信、 ログでも何でもよいので実行させた結果を受け取るというような方法はないでしょうか? もしなければ、1のコードと同じ結果をシェルを表に表示せずに 受け取ることができるできる方法を教えていただければ幸いです。 下手な文章でやりたいことが伝わりづらいかとは思いますが、ご回答をお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Windowsにもパイプはあります。 ソースを解析するよりはずっと簡単だと思います。
その他の回答 (3)
- Tacosan
- ベストアンサー率23% (3656/15482)
だいたい「プロセス間通信」でなんとかなるんでは? UNIX だとパイプだけど, Windows だとなんだっけ?
お礼
思った以上に複雑な話になってしまいそうですね・・・ 実はこのexe、ソースコードが公開されていてコンパイルできるのですが、 私の実力では理解しづらいソースでコンパイルする環境も特殊なものなので、 元から用意されているexeをそのまま利用した方が早いのではないかと考えたのですが。 ここまでしなければ並列実行できないとなると、 頑張ってソースを理解して自作のC言語プログラムの方に組み込んだ方が早そうですね。
- eroermine
- ベストアンサー率18% (83/444)
apache のような httpd を常駐させて xx.exe は CGIで起動させればいいのでは。
補足
CGIですか・・・ やはり単体のアプリケーションソフトとして作成するのは厳しいのでしょうかね?
- SAYKA
- ベストアンサー率34% (944/2776)
exeって事はwindowsだね? タスク ってので定期実行とかできるけど そういうのじゃだめ? 目的とはちょっと違うかも・・・
補足
タスクといってもOS制御のマルチタスクのことではないですよね? 具体的にどういったものなのでしょうか?
お礼
返信が遅れてしまい、申し訳ありません。 結局、PostMessage()で仮想キー入力情報をexeにとばして制御する方式にしました。 どうもありがとうございました。