c++ 使用shell命令

#include 
#include 
#include 
#include 
#include 

//execute shell command
//执行一个shell命令,输出结果逐行存储在resvec中,并返回行数
int32_t myexec(const char *cmd, std::vector<:>string> &resvec) {
    resvec.clear();
    FILE *pp = popen(cmd, "r"); //建立管道
    if (!pp) {
        return -1;
    }
    char tmp[1024]; //设置一个合适的长度,以存储每一行输出
    while (fgets(tmp, sizeof(tmp), pp) != NULL) {
        if (tmp[strlen(tmp) - 1] == '\n') {
            tmp[strlen(tmp) - 1] = '\0'; //去除换行符
        }
        resvec.push_back(tmp);
    }
    pclose(pp); //关闭管道
    return resvec.size();
}

int main(int argc, const char * argv[]) {

    std::vector<:>string> *vect = new std::vector<:>string>();
    pid_t pid = getpid();
    char *cmd = new char[1024];
    sprintf(cmd, "ps -p %d -o 'pid,pcpu,rss'",pid);
    std::cout<< cmd << std::endl;
    int32_t a = myexec(cmd, *vect);

    std::cout<< a << std::endl;

    int i = 0;
    int count = vect->size();
    for (; i < count; i++) {
        std::cout<< (*vect)[i] <<std::endl;
    }

    return 0;
}

Original: https://www.cnblogs.com/xitang/p/4288808.html
Author: 喜糖
Title: c++ 使用shell命令

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/529793/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Centos7 ifconfig中没有ens33

    在使用Secure CRT连接虚拟机连接不上,可能之前虚拟机关闭不当 登到虚拟机的中断使用ifconfig发现没有ens33 猜测是CentOS图形管理中的NetworkManag…

    Linux 2023年6月13日
    0157
  • go-select 机制

    select 的用法与 switch 语言非常类似,由 select 开始一个新的选择块,每个选择条件由 case 语句来描述。 与 switch 语句相比,select 有比较多…

    Linux 2023年6月13日
    0101
  • 三少玩Linux之FreeBSD安装与简单配置,与win7共存安装方法

    还是先安装win7, 这里就不说了; 这个是FreeBSD安装视频: https://www.bilibili.com/video/BV1vk4y1d7jt。 记得先安装windo…

    Linux 2023年6月14日
    0111
  • 附031.Kubernetes_v1.20.4高可用部署架构二

    kubeadm介绍 kubeadm概述 参考附003.Kubeadm部署Kubernetes。 kubeadm功能 参考附003.Kubeadm部署Kubernetes。 本方案描…

    Linux 2023年6月13日
    086
  • 使用docker 部署mysql,突然连接不上!

    WARNING: IPv4 forwarding is disabled. Networking will not work. 大概意思就是说,网络不能用,也就意味着不能连网络,所…

    Linux 2023年6月7日
    081
  • 2021年度总结 2022年度规划

    2021年 计划 1、学习更多的知识😁 2、学习408的知识,至少能熟悉计算机组成原理、操作系统、计算机网络、算法这几个的联系,区别等。😁 3、整理408的知识到博客上。 (一篇未…

    Linux 2023年6月13日
    097
  • 积分排名查看

    1年05个月 2018-9-17 1年04个月 2018-9-04 1年04个月 2018-8-23 1年04个月 2018-8-21 posted @2018-08-21 21:…

    Linux 2023年6月7日
    098
  • 数据分析业务知识

    1.电商和消费模型 所谓的电商和消费模型是以商品的交易、零售、购买搭建而起。包括客单价、复购率、回购率、退货率、购物篮大小、进销存等商品概念。 2.市场营销模型 市场营销模型是以传…

    Linux 2023年6月6日
    0125
  • [云原生]Kubernetes-介绍(第1章)

    一、应用部署方式演变 二、Kubernetes简介 三、Kubernetes组件 四、Kubernetes概念 参考: Kubernetes(K8S) 入门进阶实战完整教程,黑马程…

    Linux 2023年6月13日
    0114
  • Redis从入门到精通:中级篇

    原文链接:http://www.cnblogs.com/xrq730/p/8944539.html,转载请注明出处,谢谢 本文目录 上一篇文章以认识Redis为主,写了Redis系…

    Linux 2023年5月28日
    0101
  • Python的偏函数(Partial Function Application)

    这个概念说实话以前听过,但没深究过,也没用到过…但是被人问到了,就查来记录一下。 查下资料,发现这个东西说白了就是:部分参数有默认值的函数,Orz。再回过头来看他的英文…

    Linux 2023年6月8日
    0101
  • Windows 是最安全的操作系统

    建了一个用户交流群,我在群里说:”Windows 是最安全的操作系统。” 立刻引发了很多有意思的观点。我在群里一个人说不过大家,先篇文章把自己的论点罗列一下…

    Linux 2023年6月14日
    094
  • Java中QueryWrapper的基本使用

    1.单表查询 对应的sql语句为: select * from student where name = ‘?’ and class like ‘%?%’ and age betw…

    Linux 2023年6月7日
    0108
  • jQuery 遍历

    下图展示了一个家族树。通过 jQuery 遍历,您能够从被选(当前的)元素开始,轻松地在家族树中向上移动(祖先),向下移动(子孙),水平移动(同胞)。这种移动被称为对 DOM 进行…

    Linux 2023年6月13日
    091
  • 主机存活探测程序

    一、ICMP协议原理 什么是icmp协议 因特网控制报文协议ICMP(Internet Control Message Protocol)是一个差错报告机制,是TCP/IP协议簇中…

    Linux 2023年6月7日
    0112
  • CVE-2020-3452漏洞复现

    一、前言 前端时间碰到了该漏洞,记录一下! 二、漏洞介绍 该漏洞为思科ASA设备和FTD设备的未授权任意文件读取漏洞,但仅能读取到 WEB 目录下的文件,影响版本如下: Cisco…

    Linux 2023年6月8日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球