代码改变世界

Linux执行系统命令和获取参数编程

2020-10-21 17:09  宋海宾  阅读(220)  评论(0)    收藏  举报
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;     
}