日期:2014-05-16  浏览次数:20750 次

请问,怎样用C获得ping的返回值?
我在程序中用ping确定网络是否正常,找了一些ping的源码,都是很长而没一个能编译通过的,所以现在直接调用ping命令

我在程序中system( "ping   www.csdn   -c   1   > ping.txt ");
好像没有东西写入ping.txt?
我在shell中直接ping   www.csdn.net   > ping.txt
也没有东西写进去?

这是怎么回事?

另:确定网络是否正常,最好是用什么方法呢?改写ping源码吗?




------解决方案--------------------
ping就是发ICMP包,你可以以此确认网络是否通,也可以简单的打开socket来知道网络是否通。对于ping,有很多简单的例子,比如《UNIX网络编程(第一卷)》就有ping的例子,此书是UNIX网络编程的圣经,有电子版,很好找。

如楼上各位所说,ping的结果能写到文件,你最好确认一下。
------解决方案--------------------
int ret = system( "ping xxx ");
if (WEXITSTATUS( ret ) == 0)
OK
else
ERROR