在Linux下运行多个C程序的方法

4
我正在尝试学习一些关于Linux下进程通信的知识,因此我编写了两个简单的C程序来进行通信。
然而,每次手动运行它们有点烦人,所以我想知道是否有一种方法可以创建一个程序来同时运行它们,类似于这样:
./runner program1 program2

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


5个回答

4
这一行代码(在Bash中)可以解决该问题:
program1 & program2 &

如果您想记录输出结果:

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

如果你想在两个不同的终端窗口中运行命令:

xterm -e program1 & xterm -e program2 &

4

run.sh脚本

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

运行命令:

$sh run.sh

2
为什么不使用这个:
./program1;./program2

或者

./program1 &;./program2 &

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

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

而且你可以直接更改它,无需先打开脚本。


0
为了精确地执行您提出的问题,首先创建一个名为runner的文件,该文件将成为shell脚本。
#!/bin/bash

for arg in $@
do
$arg & 
done

$@ 在 bash 中是一个数组,包含传递给脚本的所有参数,这使得脚本不仅限于启动两个程序。请注意,使用此脚本启动的任何程序都需要在$PATH中或作为./program1传递给脚本。

./runner ./program1 program2 

在这个例子中,program1不在$PATH上,但是program2在。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接