我已经写了一个简单的程序,它能ping通三个站点,然后对它们是否可达做出反应。
我的问题是:我可以禁止系统(“ping”)的输出吗?我已经用C++写了我的代码,因为我最了解这种语言。目前,代码打开运行系统命令的ping.exe。如果我能阻止输出显示,而它仍然是ping,那将是最理想的。
我最终将在windows服务中运行此程序,这就是为什么我既要抑制命令行控制台窗口,也要抑制ping输出。谢谢。
发布于 2010-10-31 14:52:20
尝试执行system("ping host > nul") (nul是windows版的UNIX /dev/null)。
发布于 2010-10-31 14:59:44
通常,如果您要调用另一个程序,但又不希望它的行为类似于std::system,那么您将需要一个特定于平台的函数,如UNIX上的fork()/exec()或Windows上的CreateProcess()。这些函数使您可以控制其他程序的运行方式,例如,不显示输出或不创建控制台窗口等。
发布于 2010-10-31 14:51:54
您可以像下面这样使用系统命令来抑制ping命令的输出。
system("ping 100.100.100.100 > response.dat");上面的命令pings地址100.100.100.100,并将输出定向到名为response.dat的文件。在response.dat中,您可以看到ping命令的响应。
https://stackoverflow.com/questions/4062106
复制相似问题