我正在尝试在Visual C ++程序中运行ping
。
在命令行中,键入where ping
会返回C:\Windows\System32\PING.exe
。此外,当我从命令行发出ping
时,它可以在任何目录中运行。在我看来,这是在我的道路上。
但是,当我尝试运行以下C ++程序时,出现错误。
#include <process.h>
#include <iostream>
int main()
{
int pingretval = system("ping stackoverflow.com > /dev/null");
std::cout << "Ping returns " << pingretval << std::endl;
return 0;
}
控制台输出:
The system cannot find the path specified.
Ping returns 1
如何让system()
选择正确的可执行文件?
编辑:我在ping
参数中将C:\\Windows\\System32\\PING.exe
更改为system
,但仍然会出现同样的错误。
编辑2:我并非完全真实,所以;真诚的道歉。在我的系统调用中,我正在重定向到/dev/null
Linux风格。删除该位后我忘记重新编译,Windows文件系统中/dev/null
的绝对是“无法找到指定路径”错误的原因。删除> /dev/null
,这样就可以了。
答案 0 :(得分:0)
请勿重定向到/dev/null
for Windows。
不幸的是,在我的实际应用程序中,我无法更改系统调用参数,该参数以ping -c 3 stackoverflow.com > /dev/null
的形式出现。我试图通过制作一个忽略ping
开关(仅限Linux)的-c
封装器来使Windows变得犹豫不决,但我忘了更改Linux样式重定向。