在 C++ 中重复 system() 命令?

Repeat system() command in C++?

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

system( ("ping "+ ip +" -t -l 32").c_str() );

从网络的角度来看,我认为从多个终端 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 函数的输入字符串中与号 (&) 字符的用法。这指示 shell 到 运行 在后台给定的任务。这样 system returns 立即和 ping 命令基本上 运行s 与命令的其他两个实例同时出现。

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