如何使用C语言来判断ping命令是否能ping通,求代码。 要c的不要c++或c#的。

 我来答
ai看雪
推荐于2018-04-11 · TA获得超过207个赞
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:201万
展开全部

代码在 MAC OS 下运行良好,在 Linux 下得话需要稍作修改

#include <stdio.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>

int main(void)
{
char host[256], cmd[256];
printf("please input dest_host:");
scanf("%s", host);
strncpy(cmd, "ping -c5 ", 9);
strncat(cmd, host, strlen(host));
strncat(cmd, " > ping.txt", 11);
pid_t pid = fork();
if(pid < 0)
{
printf("fork error\n");
exit(-1);
}
if(pid==0)
{
if(execlp("/bin/sh", "sh", "-c", cmd, (char *)0) < 0)
printf("execlp error\n");
exit(0);
}
if(waitpid(pid, NULL, 0) < 0)
printf("waitpid error\n");
int fd = open("ping.txt", O_RDWR);
int n;
char buf[1024];
n = read(fd, buf, sizeof(buf));
if(n <= 0)
{
printf("read error\n");
exit(-1);
}

if(strstr(buf, "100.0%") == NULL)
printf("can reach %s", host);
else
printf("can't reach %s", host);
close(fd);
return 0;
}

 

如果你想要 ping 程序,刚好我最近写了一个,要的话私信

匿名用户
2015-12-09
展开全部
左下角开始-运行-输入cmd-弹出控制台-输出ping IP(输入你要测试的IP地址)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2018359
2015-12-09 · TA获得超过3494个赞
知道大有可为答主
回答量:3486
采纳率:73%
帮助的人:1398万
展开全部
是否是想用代码实现PING命令类似的功能?
C++ OK
追问
嗯 不过需要 c没学c++
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式