在c中运行命令行“ping -S IP HOST”并获取退出代码

时间:2014-01-03 12:05:42

标签: c

我需要通过IP运行ping到HOST 我发现语法是ping -S IP HOST

如何在c ++程序中实现这种程序化? 并获取此命令的返回退出代码?

我试过

char command[255];
sprintf(command, "ping -S %s %s", ip, host);
system(command);

但返回值是系统函数

在Windows环境下

谢谢你!

2 个答案:

答案 0 :(得分:3)

要在system函数中获取命令的返回状态,请使用WEXITSTATUS宏:

int ret = system("foo");
printf("foo return %d\n", WEXITSTATUS(ret));

检查其他W宏,它们可能很有用。

编辑:在Windows上,它似乎有所不同。您可以直接使用system函数的返回值作为命令的返回值(see msdn

  

如果command不是NULL,则系统返回命令解释器返回的值。

答案 1 :(得分:3)

在Windows上,而是使用IcmpSendEcho2来实现ping功能。 请检查此链接http://msdn.microsoft.com/en-us/library/aa366051%28VS.85%29.aspx