Linux:popen() 获取 ping 命令结果
进行网络软件的开发时,我们有时需要测试网络是否是连通状态,最简单的方式是使用 ping 命令,根据 ping 命令收发 ICMP 的包数,可以判断网络状态。
通常情况下,我们使
获取 ping 命令结果 进行网络软件的开发时,我们有时需要测试网络是否是连通状态,最简单的方式是使用 ping 命令,根据 ping 命令收发 ICMP 的包数,可以判断网络状态。 通常情况下,我们使用 system() 系统函数去执行 shell 命令。但是该函数只能返回命令是否执行成功的结果,并不能返回命令被执行后的返回值。此时,我们可以使用 popen() 函数去实现该功能。源码如下:
执行结果: popen() 函数说明 函数原型:
参数: command:需要执行的命令,比如例程中的 "ping 127.0.0.1 -c 4"; type:对命令的操作类型,值为 “r" 或 “w"。“r“ 表示获取命令的结果linux feof函数,”w“ 表示向命令写入数据。 返回值: FILE*:文件指针,后续可以使用 fread()、fgets() 读取命令的返回结果。 总结 我这里只是简单的说明了 popen() 的使用方式。其实使用该函数时有许多需要考虑的地方。就像上面的例子,如果 ping 命令失败了,会显示什么结果;如果网络不好,ping 命令卡住了,应当如何处理...大家可以读一下 《UNIX 环境高级编程(第3版)》第15章,详细了解下 popen() 和 pclose()。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |