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

我想在Linux下学习一些关于进程通信的知识,所以我写了两个简单的C程序来相互通信。

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

./runner program1 program2 

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

run.sh脚本

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

运行命令:

 $sh run.sh 

这条线会做(在Bash中):

 program1 & program2 & 

如果你想记录输出:

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

如果你想在两个独立的终端上运行命令:

 xterm -e program1 & xterm -e program2 & 

只要编写一个shell脚本来做你想做的事 – 你不需要使用C程序来运行一个C程序。

做正是你所问,首先创建一个名为runner的文件,这将是shell脚本。

 #!/bin/bash for arg in $@ do $arg & done 

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

 ./runner ./program1 program2 

在示例中, program1不在$PATH但是program2是。

为什么不使用这个:

 ./program1;./program2 

要么

 ./program1 &;./program2 & 

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

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

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