ページ 11

パイプについて

Posted: 2007年8月11日(土) 15:51
by Lbfuvab
パイプを使って対話型のコンソールアプリケーションと話がしたいのですが、
どういう風にすればいいのかが良く分かりません。
感じ的には、
①パイプStdinPipe、StdOutPipeをpipe関数で作る。//モードが良く分からない…
②dup関数で標準入出力をコピーする。
③dup2で標準入出力にパイプを組み込む      //自作のストリームに組み込めたらfputsとか使えるのに・・・
④子プロセスを起こす                //どの関数を使えばいいのだろう・・・多すぎる
⑤dup2で標準入出力を戻す
⑥readやwriteでプロセスと話す。
でいいんでしょうか。
例えば、下のTest.exeと言うプログラムと話すにはどうすればいいのでしょうか?(Test.exeが出力したものを画面に出力してユーザーの入力をTest.exeに渡す
//--------------------------------
//       Test.exe
//--------------------------------

#include<stdio.h>

int main(){
   char name[125];
   int ch,i=0;

   printf("Hello. What your name?\n");
   gets(name);
   printf("Hello,%s\n",name);
   return 0;
}

Re:パイプについて

Posted: 2007年8月11日(土) 19:36
by たかぎ
> パイプを使って対話型のコンソールアプリケーションと話がしたいのですが、
> どういう風にすればいいのかが良く分かりません。

処理系に依存せずにパイプを使う方法はありません。

Re:パイプについて

Posted: 2007年8月11日(土) 22:17
by Lbfuvab
Windows XP上で動けばいいんです。
頼みます。

Re:パイプについて

Posted: 2007年8月16日(木) 01:08
by たかぎ
CreatePipe
http://msdn2.microsoft.com/en-us/library/aa365152.aspx
または
CreateNamedPipe
http://msdn2.microsoft.com/en-us/library/aa365150.aspx
について調べてみましょう。

Re:パイプについて

Posted: 2007年8月18日(土) 23:40
by Lbfuvab
有難うございました