我正试图在VisualC++程序中运行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()获得正确的可执行文件?
编辑:I在system参数中将ping更改为C:\\Windows\\System32\\PING.exe,但仍然会出现相同的错误。
编辑2:,我不是完全诚实,所以,我真诚的道歉。在我的系统调用中,我重定向到/dev/null Linux风格。在删除该位后,我忘记了重新编译,而/dev/null文件系统中的空白是导致“找不到指定路径”错误的原因。通过删除> /dev/null,这是很好的工作方式。
发布于 2014-02-26 01:45:43
不要为Windows重定向到/dev/null。
不幸的是,在我的实际应用程序中,我无法更改以ping -c 3 stackoverflow.com > /dev/null形式出现的系统调用参数。我试图通过为ping编写一个忽略-c开关的包装器(仅用于Linux ),从而使其成为适用于-c的工具,但我忘记了更改Linux样式的重定向。
https://stackoverflow.com/questions/22026932
复制相似问题