zoukankan      html  css  js  c++  java
  • c++ 获取某个进程个数

    我们用system()调用shell很容易就可以办到了,但是我们往往想把这个数量存到一个整形变量里面,因为system调用之后会把结果定向到控制台。

    我找了半天吧system定位到标准输出的方法,无奈没找到,所以只能先把它定向到一个file里面,这样我从file里面可以获取这个数值。

    1.具体实现:

    #include <iostream>
    #include <sys/stat.h>
    #include <fstream>
    
    system("rm -rf p_cnt.txt");
    system("ps gaux | grep MyTest | grep -v grep | wc -l > p_cnt.txt");
    ifstream fin("./p_cnt.txt");
    string num = "0";
    getline(fin,num,'\n');
    fin.close();
    int n = atoi(num.c_str());
    cout<< n <<endl;
    

     先放在一个p_cnt.txt文件中,然后写进去,然后就可以了。

    2.这样一个程序有何用处?

    有些过程化的程序有时会被一个脚本定时的调用,如果这个程序没有执行完而被再次调用,那么该程序的进程必然会增加,严重时可以导致这个程序开很多进程,情况会因此而加剧,导致卡主的进程越来越多。我们可以通过这个方式来控制这个程序进程的数量。比如加上个判断:

    if(n>MAX_NUM) exit(-1);

    ;)

  • 相关阅读:
    2017加油
    配置SSH框架的心得
    .net 中select和where的区别
    oracle查询中文数据出现乱码
    three.js 加载 obj模型
    下载别人的3D模型文件
    关闭按钮
    桌面截屏保存成gif形式(软件)
    vue 中引入 three.js
    three.js-地球贴图-TextureLoader
  • 原文地址:https://www.cnblogs.com/colorfulkoala/p/2767653.html
Copyright © 2011-2022 走看看