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)

大家都在看

  • redis

    常用操作 LLEN KEY_NAME # &#x8FD4;&#x56DE;&#x5217;&#x8868;&#x7684;&#x95…

    Linux 2023年5月28日
    092
  • 机器学习:单元线性回归(python简单实现)

    本篇文章主要记录和讲解使用python如何简单实现单元线性回归算法 文章简介 使用python简单实现机器学习中单元线性回归算法。 算法目的 该算法核心目的是为了求出假设函数h中多…

    Linux 2023年6月7日
    087
  • ASP.NET Core 2.2 : 二十. Action的多种数据返回格式处理机制

    上一章讲了系统如何将客户端提交的请求数据格式化处理成我们想要的格式并绑定到对应的参数,本章讲一下它的”逆过程”,如何将请求结果按照客户端想要的格式返回去。 …

    Linux 2023年6月7日
    0121
  • 提升git clone速度

    查看github.global.ssl.fastly.Net的ip地址 nslookup github.global.ssl.fastly.Net Original: https:…

    Linux 2023年6月7日
    0111
  • docker:nginx+confd动态生成配置

    docker:nginx+confd动态生成配置当我们项目越来越多时手动去服务器修改nginx配置是一件很麻烦而且可能出错的事情。我们可以通过 nginx+confd+&#…

    Linux 2023年6月13日
    069
  • 深入理解linux内核-进程和程序

    task_struct //进程基本信息 pid 进程id号 tgid 线程组id号,与线程组领头线程pid号相同 getpid()返回该值 tasks init_struct链接…

    Linux 2023年6月6日
    061
  • pip 换源与python虚拟环境的创建

    pip换源 临时换源: pip install pypi源下载源码,在国外,比较慢—》镜像(pypi在国内备份)—>豆瓣,清华,阿里 pip install -i 源…

    Linux 2023年6月14日
    083
  • 软件测试基础理论(2)

    一, 为什么要进行软件测试 &#x4E3A;&#x4E86;&#x901A;&#x8FC7;&#x8F6F;&#x4EF6;&amp…

    Linux 2023年6月7日
    0104
  • 内存分配-slab分配器

    1 slab综述 1.1 slab分配器产生的背景 类似 task_struct mm_struct 等结构被内核中被频繁分配和释放,同时创建和销毁这些结构会产生一定的开销(ove…

    Linux 2023年6月7日
    073
  • js笔记之switch-case

    switch 语句来选择要执行的多个代码块之一。switch 不能处理大于小于的 工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比…

    Linux 2023年6月13日
    077
  • 2021年想做的最后挣扎

    一年的时间转眼间就过完,感觉没变,又感觉跟一年前的今天变化还是蛮多的,树立个小目标争取年前完成把 读书一本书看一篇文章: 《百年孤独》:我总感觉虽然是只单身狗是孤单的,理解不了孤独…

    Linux 2023年6月14日
    074
  • 安装clearos系统

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 一、clearos介绍 ClearOS是一个基于CentOS和Red Hat Enterprise Linux的简单,开源,价格…

    Linux 2023年5月27日
    086
  • 离线版centos8环境部署迁移监控操作笔记

    嗨咯,前两天总结记录了离线版centos8下docker的部署笔记,今天正好是2021年的最后一天,今天正好坐在本次出差回家的列车上,车上没有上面事做,索性不如把本次离线版cent…

    Linux 2023年6月14日
    099
  • 宝塔配置vnc+wine实现Q群机器人

    图形界面必备 X Window System yum -y groupinstall "X Window System" 安装epel源 yum -y inst…

    Linux 2023年5月27日
    085
  • Python中使用%s占位符生成sql与literal转义防止sql注入攻击原理浅析

    问题背景 在后端服务中经常需要通过传入参数动态生成sql查询mysql,如查询用户信息、资产信息等,一条常见的sql如下: SELECT vip, coin FROM user_a…

    Linux 2023年6月6日
    0124
  • 我最鄙视的程序员

    今天在技术群里看到关于优秀程序员特质的话题,让我想起多年前的一个同事,一个我最鄙视的程序员。 他的名字叫李伟(化名),是入职没多久的员工,我所在的开发二组和他在的一组,以前没有过工…

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