2012-03-01 18 views
3

Linuxでのプロセス通信について少し勉強しようとしているので、お互いに通信する2つのシンプルなCプログラムを書いています。LinuxのCプログラムから複数のCプログラムを実行する

しかし、それは手動で一つ一つの時間をそれらを実行する必要が少し迷惑なんだ、私は知りたいのですが、それらの両方を実行するプログラムを作るための方法があり、このような何か:

./runner program1 program2 

私は最新のUbuntuとBashシェルを使用しています。

答えて

4

run.shスクリプト

#!/bin/sh 
./program1 & 
./program2 & 

runコマンド:

$sh run.sh 
0

Cプログラムを実行するためにCプログラムを使う必要はありません。

2

この行は(バッシュに)行います:

program1 & program2 & 

あなたが出力記録したい場合:

:あなたは二つの別々の端末でコマンドを実行したい場合

program1 >output1.txt & program2 >output.txt & 

xterm -e program1 & xterm -e program2 & 
0

これは使用しない理由:

./program1;./program2 

または

./program1 &;./program2 & 

を誰かが、それは有用ではないだと考え、なぜ私にはわからないが、それは実際に動作します。

確かにスクリプトを書くことはできますが、スクリプトの内容は何ですか?それでも同じことです。

そして、スクリプトを最初に開く必要なしにすぐに変更できます。

0

あなたが尋ねたことを正確に行うには、最初にrunnerというファイルを作成してシェルスクリプトにします。 bashで

#!/bin/bash 

for arg in [email protected] 
do 
$arg & 
done 

[email protected]スクリプトに渡されるすべての引数の配列で、これはありませんのみ2つのプログラムを起動するに制限するスクリプトを作成します。 このスクリプトを使用して起動するプログラムは、$PATHにあるか、./program1というスクリプトに渡す必要があります。例えばprogram1

./runner ./program1 program2 

$PATHではないが、program2です。

関連する問題