在Visual C ++系统调用的路径中找不到可执行文件

时间:2014-02-25 21:45:07

标签: c++ visual-studio visual-c++

我正在尝试在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,这样就可以了。

1 个答案:

答案 0 :(得分:0)

请勿重定向到/dev/null for Windows。

不幸的是,在我的实际应用程序中,我无法更改系统调用参数,该参数以ping -c 3 stackoverflow.com > /dev/null的形式出现。我试图通过制作一个忽略ping开关(仅限Linux)的-c封装器来使Windows变得犹豫不决,但我忘了更改Linux样式重定向。