• ベストアンサー

C言語プログラムと外部ファイルを平行実行しながらデータのやり取り

起動するとシェル上で入力待ちになるexeファイルがあるのですが、これを外部から起動させ、 呼び出しよりも後の方で外部から入力情報を指定するということをしたいと思っています。 現在はnyuryoku.txtに入力情報を記述してログをとるためのlog.txtを用意し、 1. system("xx.exe > log.txt < nyuryoku.txt"); としているのですが、これと同じようなことをexeをいちいち起動させず、 呼び出し側と平行して常時起動状態にして、必要に応じて入力情報をあとから送信、 ログでも何でもよいので実行させた結果を受け取るというような方法はないでしょうか? もしなければ、1のコードと同じ結果をシェルを表に表示せずに 受け取ることができるできる方法を教えていただければ幸いです。 下手な文章でやりたいことが伝わりづらいかとは思いますが、ご回答をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • titokani
  • ベストアンサー率19% (341/1726)
回答No.4

Windowsにもパイプはあります。 ソースを解析するよりはずっと簡単だと思います。

seagal07
質問者

お礼

返信が遅れてしまい、申し訳ありません。 結局、PostMessage()で仮想キー入力情報をexeにとばして制御する方式にしました。 どうもありがとうございました。

その他の回答 (3)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

だいたい「プロセス間通信」でなんとかなるんでは? UNIX だとパイプだけど, Windows だとなんだっけ?

seagal07
質問者

お礼

思った以上に複雑な話になってしまいそうですね・・・ 実はこのexe、ソースコードが公開されていてコンパイルできるのですが、 私の実力では理解しづらいソースでコンパイルする環境も特殊なものなので、 元から用意されているexeをそのまま利用した方が早いのではないかと考えたのですが。 ここまでしなければ並列実行できないとなると、 頑張ってソースを理解して自作のC言語プログラムの方に組み込んだ方が早そうですね。

  • eroermine
  • ベストアンサー率18% (83/444)
回答No.2

apache のような httpd を常駐させて xx.exe は CGIで起動させればいいのでは。

seagal07
質問者

補足

CGIですか・・・ やはり単体のアプリケーションソフトとして作成するのは厳しいのでしょうかね?

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

exeって事はwindowsだね? タスク ってので定期実行とかできるけど そういうのじゃだめ? 目的とはちょっと違うかも・・・

seagal07
質問者

補足

タスクといってもOS制御のマルチタスクのことではないですよね? 具体的にどういったものなのでしょうか?

関連するQ&A