我必须ping给定的IP地址,我需要在C ++中打印以下值。使用popen并获得输出是可以的。
1) Average Response Time
2) Data Block Size
3) Failure Count
4) Max. Response time
5) Min. Response time
6) Number Of Repetitions
7) Success Count
8) TimeOut
如果我使用popen,我将得到一个文件指针,我需要读取此文件指针以获取整个输出,我必须使用一些字符串操作提取值。任何人都可以告诉我,如果有其他方式而不是使用字符串操作?操作系统是否会维护任何数据结构,通过该结构我可以在执行ping命令后获取值?
答案 0 :(得分:1)
我想不出比从你读过的字符串中提取结果更好的方法。完全是解析字符串的最好方法,我不确定[主要是因为我没有花太多时间考虑这个!]
另一种选择当然是编写自己的ping
内部实现,但我相当确定这比在系统popen
上使用解析器要多得多ping
。 1}} - 除非你想要非常便携的代码[但那时还需要一个非常便携的网络包,因为原生网络也不是很便携]。