在C++;? 在C++中,在多个CMD上重复一个简单的系统命令最简单的方法是什么?例如,我如何从我的C++代码在多个终端窗口重复这个代码?p>

在C++;? 在C++中,在多个CMD上重复一个简单的系统命令最简单的方法是什么?例如,我如何从我的C++代码在多个终端窗口重复这个代码?p>,c++,cmd,ping,C++,Cmd,Ping,system((“ping”+ip+“-t-l32”).c_str()从网络的角度来看,我认为从多个终端ping单个系统不如从多个远程系统ping该系统有效 无论如何,关于从多个进程ping系统的最简单方法。。。直接使用外壳即可。比如: target=s4 for remotehost in s1 s2 s3; do (ssh -n $remotehost ping $target -t -l 32 & ) ; done “远程主机”也不一定是真正的远程主机。您可以多次使用“local

system((“ping”+ip+“-t-l32”).c_str()

从网络的角度来看,我认为从多个终端ping单个系统不如从多个远程系统ping该系统有效

无论如何,关于从多个进程ping系统的最简单方法。。。直接使用外壳即可。比如:

target=s4
for remotehost in s1 s2 s3; do (ssh -n $remotehost ping $target -t -l 32 & ) ; done
“远程主机”也不一定是真正的远程主机。您可以多次使用“localhost”(而不是远程主机的多个名称)

如果你真的想从单个主机使用C++:

#include <cstdlib>
#include <string>

int main()
{
    const std::string ip = "foo";
    for (int i = 0; i < 3; ++i)
    {
        std::system(("ping " + ip + " -t -l 32 & ").c_str());
    }
}
#包括
#包括
int main()
{
const std::string ip=“foo”;
对于(int i=0;i<3;++i)
{
std::system((“ping”+ip+“-t-l32&”).c_str();
}
}
注意
系统
函数的输入字符串中使用的符号和(&)字符。它指示shell在后台运行给定的任务。这样,
system
会立即返回,ping命令基本上与该命令的其他两个实例同时运行


希望这有助于回答您的问题。

std::async
可能会对您有所帮助。这里的文档:std::system是否线程安全?我觉得由于std::system的行为本质上是未指定的,因此任何有意义的建议都需要指定目标平台。这只打开一个命令prompt@CedricStrobe它会打开多个命令提示,但是一次可能只有一个。有没有办法让它们同时运行?鉴于使用了符号和(&)字符,我希望shell在后台运行给定的作业,以便
system
立即返回。这样,它更像是Ping的fork和exec,它们同时运行。@CedricStrobe我还更新了我的答案,以帮助提醒大家注意调用运算符的后台任务-符号。