在Linux下从C程序运行多个C程序

时间:2012-03-01 17:36:15

标签: c linux process execute

我正在尝试在Linux下学习一些关于进程通信的内容,所以我编写了两个相互通信的简单C程序。

然而,每次都必须手动运行它们有点烦人,所以我想知道有没有办法让程序运行它们两者,如下所示:

./runner program1 program2

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

5 个答案:

答案 0 :(得分:4)

run.sh脚本

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

运行命令:

$sh run.sh

答案 1 :(得分:2)

这一行(在Bash中):

program1 & program2 &

如果要录制输出:

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

如果要在两个单独的终端中运行命令:

xterm -e program1 & xterm -e program2 &

答案 2 :(得分:1)

为什么不使用它:

./program1;./program2

./program1 &;./program2 &

我不知道为什么有人认为它没用,但确实有用。

当然你可以编写一个脚本,但脚本的内容是什么?还是一样的。

您可以立即更改它,而无需先打开脚本。

答案 3 :(得分:0)

只需编写一个shell脚本来执行您想要的操作 - 您不需要使用C程序来运行C程序。

答案 4 :(得分:0)

完全按照你的要求做,首先创建一个名为runner的文件,它将是shell脚本。

#!/bin/bash

for arg in $@
do
$arg & 
done
bash中的

$@是传递给脚本的所有参数的数组,这使得脚本不仅限于启动2个程序。 请注意,使用此脚本启动的所有程序都必须位于 $PATH上,或者作为./program1传递给脚本。

./runner ./program1 program2 

在示例中,program1不在$PATHprogram2。{{1}}。