2012-03-01 107 views
3

我想在Linux下學習一點或兩點關於進程通信,所以我寫了2個簡單的C程序,它們相互通信。從Linux下的C程序運行多個C程序

然而,這是一個有點惱人必須手動運行它們每一次,所以我想知道有沒有辦法讓將運行他們兩個程序,是這樣的:

./runner program1 program2 

我正在使用最新的Ubuntu和Bash shell。

回答

4

run.sh腳本

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

運行命令:

$sh run.sh 
0

只要編寫一個shell腳本來做你想做的事 - 你不需要使用C程序來運行C程序。

2

這條線將做(Bash中):

program1 & program2 & 

如果你想記錄輸出:如果你想運行在兩個單獨的終端命令

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

xterm -e program1 & xterm -e program2 & 
0

爲什麼不使用這樣的:

./program1;./program2 

./program1 &;./program2 & 

我不知道爲什麼有人認爲這是沒有用的,但它確實有效。

當然你可以寫一個腳本,但腳本的內容是什麼?仍然是同樣的事情。

您可以立即更改它,無需先打開腳本。

0

請確實按照您的要求做,首先創建一個名爲runner的文件,它將成爲shell腳本。

#!/bin/bash 

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

在bash [email protected]是傳遞給腳本的所有參數數組,這使得沒有僅限於啓動兩個程序的腳本。 請注意,使用此腳本啓動的任何程序都需要位於$PATH或作爲./program1傳遞給腳本。

./runner ./program1 program2 

在該示例program1不在$PATHprogram2是。