ページ 11

ファイル名の入力を要求する複数の実行ファイルを一度に実行する方法

Posted: 2010年3月23日(火) 14:18
by くぼ
ファイル名の入力を要求する
複数の実行ファイルを
一度に実行する方法を教えて下さい。

コンパイラはgccです。

例えば、a.exeとb.exeという二つの実行ファイルがあり、
それぞれa.txt、b.txtというファイル名の入力を実行後に
要求してくるとします。

仮に、

./a.exe;./b.exe

と入力すると、実行は可能ですが、
もし、a.exeとb.exeがともに
パラメータ等を記載したファイル名の入力を要求している場合では、
このままでは、いちいちファイル名を入力せねばならず
効率的ではありません。

これを一度に実行する何かよい方法を教えていただけませんか?
初心者な僕ですが、よろしくお願いします。

Re:ファイル名の入力を要求する複数の実行ファイルを一度に実行する方法

Posted: 2010年3月23日(火) 15:21
by softya
stdinからの入力ならリダイレクトすればよろしいかと。
./a.exe <ina.txt;./b.exe <inb.txt

Re:ファイル名の入力を要求する複数の実行ファイルを一度に実行する方法

Posted: 2010年3月23日(火) 16:05
by くぼ
返信ありがとうございます!!
しかしながら、

./a.exe < a.txt;./b.exe < b.txt

(ina.txtのinは誤字ですよね?)

ではファイルを読んでくれませんでした...

(説明:なお、僕の作った実行ファイルでは
./a.exeで実行後、
"ファイル名を入力しなさい。"という文章の表示後に
char str[100];
scanf("%s",str);
でパラメータファイル名を読み見込むようにしています.)

何故..?

Re:ファイル名の入力を要求する複数の実行ファイルを一度に実行する方法

Posted: 2010年3月23日(火) 16:16
by softya
違いますよ。入力のリダイレクトですので、
ina.txtに中に
a.txt
inb.txtに中に
b.txt
と書いてください。

./a.exe < a.txt;
と書くとa.txtの中身をscanf("%s",str); に入力する事になります。

Re:ファイル名の入力を要求する複数の実行ファイルを一度に実行する方法

Posted: 2010年3月23日(火) 16:54
by くぼ
なるほど!
パラメータを記載したファイル以外に
パラメータ名を記載したファイル(a.txtとする)を用意して

./a.exe < a.txt

とやる方法ですね。
これで新たにファイル生成は必要ですが
目的は達成せきますね。
ありがとうございました!