Linux下用c实现通过ping检测连接
2015-09-10 17:56
393 查看
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
// 通过ping命令来检测是否掉线
int ping(char *ip)
{
int i, status;
pid_t pid;
// 不同则循环检测多次
for (i = 0; i < 3; ++i)
{
// 新建一个进程来执行ping命令
if ((pid = vfork()) < 0)
{
printf("vfork error");
continue;
}
if (pid == 0)
{
// 执行ping命令
if (execlp("ping", "ping", "-c 1", ip, (char*)0) < 0)
{
printf("execlp error\n");
exit(1);
}
}
waitpid(pid, &status, 0);
// 相等说明正常
if (status == 0)
return 0;
sleep(2);
}
return -1;
}
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
// 通过ping命令来检测是否掉线
int ping(char *ip)
{
int i, status;
pid_t pid;
// 不同则循环检测多次
for (i = 0; i < 3; ++i)
{
// 新建一个进程来执行ping命令
if ((pid = vfork()) < 0)
{
printf("vfork error");
continue;
}
if (pid == 0)
{
// 执行ping命令
if (execlp("ping", "ping", "-c 1", ip, (char*)0) < 0)
{
printf("execlp error\n");
exit(1);
}
}
waitpid(pid, &status, 0);
// 相等说明正常
if (status == 0)
return 0;
sleep(2);
}
return -1;
}
相关文章推荐
- Linux socket 初步
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- 5 个用于在 Linux 终端中查找域名 IP 地址的命令
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 基于 Linux 集群环境上 GPFS 的问题诊断
- 谁是桌面王者?Win PK Linux三大镇山之宝
- vivi下重新调整分区
- Linux VS Unix:Linux欲一统天下 Unix不死
- linux下设定环境变量