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); //关闭管道
}
C通过管道获取LINUX进程内存占用情况
最新推荐文章于 2023-04-25 14:40:16 发布