2015-11-20 80 views
1

我在读this有关使用消息传递的进程间通信的文章。为了运行这些示例并查看它所说的内容,我引用:“应该同时编译并运行”。有人有什么想法,我应该如何做到这一点?同时运行两个程序C/C++

+4

1.编译并运行一个。 2.不停止第一个,编译并运行另一个? - 或者,它可能意味着:1.编译两者。 2.运行一个。 3.不停止第一个,运行另一个。 (因为英文很奇怪) – immibis

+0

如果你在Linux上,fork()和exec()结合起来可以让你同时运行两个不同的可执行文件,但是你不可能在编译时执行一个程序它。在Windows和其他非POSIX操作系统中可能有类似的功能。 –

+0

我想弄清楚你应该如何运行一个程序,而它仍在编译。这个引用在某处可能有语法错误... – user4581301

回答

0

你几乎可以同时创建BAT文件,然后启动这两个程序:

START first.exe 
START second.exe 
0

“应该被编译,并在同一时间运行”

我认为这是明确的一个程序可以编译后才能运行(这是一个小的语法问题,应该忽略)。


在Linux中,我的首选启动进程的机制是由我的C++程序调用的popen。

在C++中,一个线程(让我们称之为启动进程)很容易使用popen为应用程序启动尽可能多的进程(称为这些工作进程)。

然后,我会使用消息来同步启动(即,工作进程应该初始化自己,然后等待(在启动时)从启动进程发出启动消息)。这些启动消息的工作方式与应用程序使用它们的方式相同。这可以确保多个工作进程同时运行(但受限于系统有多少核心可用)。