(解决方法在最后,前面是心路历程。。。)
最近测试场景需要监控某个特定名称进程的cpu占用率
在网上搜了一会,想找现成的答案
但搜到的内容要么是获取进程的memory占用(进程id下status文件的信息),要么就是整个cpu的占用率(stat文件的信息),貌似没有现成的获取指定进程的cpu的占用率方法
最后放弃了拿来主义,决定自己研究下,先在/proc目录下翻了半天,没有找到答案
于是决定放弃探索,用最笨的方法,top|grep 进程名 输出文本,然后读文本
说着简单,但因为top指令输出的特殊性,也花了我小半天的时间,现在开始贴答案:各位觉得有用的话麻烦点赞,关注,谢谢~
代码是C/C++
1)执行top指令
system(“top -bn 1 | grep procName > fileName”);
参数-bn很重要,表示每次输出1次的结果,没有它,这个方法无法使用
这行代码就是把procName的进程信息,输出到fileName文件上,文件的内容如下图所示
进程的Cpu占用率就是6.2
你也可以在该指令后或上一个awk ‘{print $9}’
2)读文本
3)获取cpu占用率
代码不贴了,相信看到这里的朋友也不需要。。。
好了,再有问题可以私信,大家喜欢记得点赞关注哦