在C ++中对多个CMD重复简单系统命令的最简单方法是什么?例如,我如何从C ++代码在多个终端窗口上重复此代码?
system( ("ping "+ ip +" -t -l 32").c_str() );
答案 0 :(得分:0)
从网络角度来看,我不认为从多个终端ping单个系统与从多个远程系统ping该系统一样有效。
无论如何,关于从多个进程ping系统的最简单方法......只需直接使用shell。类似的东西:
target=s4
for remotehost in s1 s2 s3; do (ssh -n $remotehost ping $target -t -l 32 & ) ; done
" remotehost"也不必真正成为远程主机。你可以使用" 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());
}
}
请注意system
函数的输入字符串中&符号(&amp;)的使用。它指示shell在后台运行给定的任务。那样system
立即返回,ping命令基本上与命令的另外两个实例同时运行。
希望这有助于回答您的问题。