您的位置:首页 > 运维架构 > Linux

C通过管道获取LINUX进程内存占用情况

2016-01-19 14:33 691 查看
char cpu[100], mem[100];
char cmd[] = "top -b -n1 | grep XXXX| awk '{print($9,$10,$12);}'";//XXXX就是你要监控的进程名
FILE *pp = popen(cmd, "r"); //建立管道
if (pp != NULL)
{
char tmp[1024] = {0}; //设置一个合适的长度,以存储每一行输出
if(fgets(tmp, sizeof(tmp), pp) != NULL)
{
char delims[] = " ";
char *p = strtok( tmp,  delims);
if(p)
sprintf(cpu, "%s%%", p);
p = strtok( NULL,  delims);
if(p)
sprintf(mem, "%s%%", p);
}
pclose(pp); //关闭管道
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: