2014-05-11 50 views
2

通常当我想从C++代码运行可执行文件时。我只是使用代码:如何在C++中并行执行系统命令

system("path\to\the\executable param"); 

现在,我想要并行运行可执行文件。我使用2个线程。第一个线程将调用:

system("path\to\the\executable param1"); 

第二个线程将调用:

system("path\to\the\executable param2"); 

但是如我所料不并行运行。

有没有办法解决这个问题?

+0

你是什么意思与'平行'?你的男人(大脑的例子)'系统(“1.exe 2.exe 3.exe”);'?还是你的意思是与自己的线程的异步调用? –

+2

在Windows中?使用'“开始[选项]程序”'。 –

+0

你知道如何在字符串中使用反斜杠(\\),不是吗? –

回答

4

您可以如下运行多个命令:

system("path\\to\\the\\executable param1 &"); 
system("path\\to\\the\\executable param2"); 

这样既会并行运行,而你的程序并不需要是多线程这一点。

+0

假设OP在询问Linux/Unix风格的操作系统。 –

+0

但有可能检查单独的可执行文件的输出吗?在我的情况下,需要的是有办法读取启动的可执行文件的输出。 –

1
  • 对于windows:CreateProcess(参见MSDN)函数。
  • 对于* NIX:首先,spwan与fork的孩子,然后用execXX(execl,execle,execlp,execv,execvp)替换子代码。