Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从c+中的系统命令检索ping时间+;(平x.x.x.x-n)_C++_Windows_Console_Ping_Icmp - Fatal编程技术网

C++ 从c+中的系统命令检索ping时间+;(平x.x.x.x-n)

C++ 从c+中的系统命令检索ping时间+;(平x.x.x.x-n),c++,windows,console,ping,icmp,C++,Windows,Console,Ping,Icmp,我正在编写一个小型控制台应用程序(使用visual studio 2012的windows平台),显示当前对IP的ping和其他一些统计信息。(最近100次ping、数据包丢失等的平均值) 以下是我的实际实现: char buffer[100]; FILE *fp = _popen("ping -l 1 -n 1 61.5.222.121" , "r"); for (i=0;i<8;i++) { fgets(buffer,100,fp); } _pclose(fp) 然后我使用st

我正在编写一个小型控制台应用程序(使用visual studio 2012的windows平台),显示当前对IP的ping和其他一些统计信息。(最近100次ping、数据包丢失等的平均值) 以下是我的实际实现:

char buffer[100];
FILE *fp = _popen("ping -l 1 -n 1 61.5.222.121" , "r");
for (i=0;i<8;i++) {
   fgets(buffer,100,fp);
}
_pclose(fp)
然后我使用strstr和sscanfs从缓冲区中提取ping。 但当我执行程序时,我在process manager中看到ping.exe和cmd.exe一直在打开/关闭,这是正常的,因为在每个popen上,它都会启动一个

我正在寻找一种更干净的方法来检索ping时间值。例如,每次在popen中创建新行时(使用命令“ping google.com-t”)都可以读取输出,这样,只有一个ping.exe和cmd.exe进程可以使所有作业和ping刷新时间更快


我已经研究了IcmpSendEcho命令,但这对我来说非常复杂。我基本上想要一个在后台运行的简单函数,并在每次收到新函数时在全局变量中写入ping响应时间。

如果执行IcmpSendEcho看起来很复杂,也许可以提供帮助,您可以根据需要修改它。

您可能需要阅读
_beginthread( ping, 0, NULL );