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);

;)

原文链接: https://www.cnblogs.com/colorfulkoala/archive/2012/11/13/2767653.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    c++ 获取某个进程个数

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

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

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

(0)
上一篇 2023年2月9日 下午1:42
下一篇 2023年2月9日 下午1:42

相关推荐