LINUX下用C调用系统命令,并读取执行结果的代码

简介: LINUX下用C调用系统命令,并读取执行结果的代码

 比如说,想看看某个IP是否通:

int   ping_ip(const char* ip)
{
    FILE *fstream = NULL;
    char buffer[1024];
    int found = -1;
    memset(buffer, 0, sizeof(buffer));  
    //只ping一次 
    sprintf(buffer, "ping -c 1 %s", ip);
    if (NULL == (fstream = popen(buffer,"r")))      
    {     
        return -1;      
    }   
    //读取执行结果
    while (NULL != fgets(buffer, sizeof(buffer), fstream)) 
    {  
        //LOG_INFO("%s", buffer);
        //包含特定字串,表示执行成功
        if (strstr(buffer, "bytes from") != NULL)
        {
            //找到了
            found = 0;
            break;
        }
    }
    pclose(fstream);    
    return found;     
}

实际测试中发现,fgets()有时会崩溃。

目录
相关文章
|
2月前
|
安全 Linux 网络安全
Linux使用HTTP隧道代理代码示例模版
Linux使用HTTP隧道代理代码示例模版
20 0
|
3月前
|
自然语言处理 数据挖掘 Linux
ModelScope问题之拷贝到内网linux系统运行代码报错如何解决
本合集将提供ModelScope安装步骤、配置要求和环境准备,以便用户顺利启动ModelScope进行模型开发和测试。
72 0
|
2月前
|
Linux 编译器 程序员
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
81 0
|
4月前
|
消息中间件 Kubernetes NoSQL
Linux时间校准(ntpdate及NTP客户端代码校准示例)
Linux时间校准(ntpdate及NTP客户端代码校准示例)
|
5月前
|
Linux C语言
在Linux中使用gcc/g++编译代码
1.方法速记 直接编译语法:将text.c文件或者text.cpp文件直接编译成text文件。 gcc text.c -o text // gcc-o text.c text g++ text.cpp -o text // g++ text.cpp -o text
45 0
|
2月前
|
安全 Linux 开发者
⭐⭐⭐⭐⭐Linux C/C++ 进程崩溃诊断以及有效数据收集:解锁代码问题快速定位与修复的方法
⭐⭐⭐⭐⭐Linux C/C++ 进程崩溃诊断以及有效数据收集:解锁代码问题快速定位与修复的方法
91 1
|
4天前
|
存储 安全 算法
【Linux | C++ 】基于环形队列的多生产者多消费者模型(Linux系统下C++ 代码模拟实现)
【Linux | C++ 】基于环形队列的多生产者多消费者模型(Linux系统下C++ 代码模拟实现)
21 0
|
4天前
|
算法 Linux 数据安全/隐私保护
【Linux | C++ 】生产者消费者模型(Linux系统下C++ 代码模拟实现)
【Linux | C++ 】生产者消费者模型(Linux系统下C++ 代码模拟实现)
11 0
|
10天前
|
Linux Shell 调度
【Linux系列】fork( )函数原理与应用详解——了解【父子进程及其特性】(代码演示,画图帮助理解,思维导图,精简)(11)
【Linux系列】fork( )函数原理与应用详解——了解【父子进程及其特性】(代码演示,画图帮助理解,思维导图,精简)(11)
|
12天前
|
安全 Unix Linux
Linux:开源之美与代码之韵
Linux:开源之美与代码之韵
22 1