如何在Linux下通过C++程序获取ps -ef | grep “****” 的执行结果,并分解其中的进程号,废话少说,直接上代码:

#include

#include

#include

#include

#include

#include

#include

using namespace std;

map pmap;

int prep_map(map &pmap){

FILE *pstr;

char cmd[128],buff[512],*p;

int iPID;

const char *name= "mongod";//要查找的进程名

int pidPosition=1;

int pInfoPosition=7;

memset(cmd,0,sizeof(cmd));

sprintf(cmd, "ps -ef | grep mongod | grep -v \"grep\" | grep fork | awk '{printf $2;printf \"|\";for(i=8;i<=NF;i++)printf\"%s \",$i;printf\"\\n\"}'",name);

pstr=popen(cmd, "r");

if(pstr==NULL)

{

return 1;

}

memset(buff,0,sizeof(buff));

while( 1 )

{

fgets(buff,512,pstr);

if(feof(pstr))

{

break;

}

printf("buffer=%s",buff);

p = strtok(buff, " ");

int iPos=0;

string strPInfo;

while(NULL != p)

{

if(pidPosition == iPos)

{

iPID = atoi(p);

printf("pid=%d \n", iPID);

}

if(iPos >= pInfoPosition)

{

strPInfo += p;

strPInfo += " ";

}

iPos++;

p=strtok(NULL, " ");

string iPID_str = iPID+"";

pmap.insert(map::value_type(iPID_str,strPInfo.c_str()));

}

printf("pInfo = %s \n", strPInfo.c_str());

}

pclose(pstr);

return 1;

}

int main()

{

prep_map(pmap);

map::iterator it;

for(it = pmap.begin();it != pmap.end();it++)

{

cout << "---pid is : " << it->first << endl;

cout << "---cmd is : " << it->second << endl;

}

}

linux下进程号,Linux下C++获取进程号相关推荐

  1. linux c语言中如何通过进程名获取进程PID(awk命令行指令)popen、pclose

    文章目录 不唯一匹配(包含字符的全都匹配上)(而且进程名最多为15个字符?)(前15个字符?) 方法1:嵌到程序里,通过命令行附带要查找的进程名称(交叉编译在arm摄像头里运行) 方法2:通过搜素/p ...

  2. 谈下这几天sybase数据库获取行号遇到的坑

    关于Sybase数据库获取行号的问题 这几天在搞一个sybase数据库的问题(此前连听都没听说过的数据库,是我才疏学浅了),目的是获取到数据库的行号,前辈的源代码是这样的: INSERT INTO [ ...

  3. c++ 获得linux进程内存大小,C/C++获取进程常驻内存大小(get the process resident set size )...

    1.进程内存接口函数 2.接口封装实现#if defined(_WIN32) #include #include #elif defined(__unix__) || defined(__unix) ...

  4. php 获取移动端设备号,getDeviceId()获取设备号IMEI、MEID、ESN

    网络请求的时候需要根据设备号id传参,但是服务端后台收到的有时候为空,服务端的存储就为1个0 .而手机设备号获取与手机本身注册的网相关 本人经测试情况魅蓝note5.1:全网通.2张联通卡.获取结果为 ...

  5. 获取计算机进程的基址,Python - 如何获取进程的起始/基址?

    安装pydbg from pydbg import * from pydbg.defines import * import struct dbg = pydbg() path_exe = " ...

  6. 【Linux】四、Linux 进程概念(上篇)

    目录 前言 一.冯诺依曼体系结构 1.1 冯诺依曼体系结构是什么 1.2 冯诺依曼体系结构为什么这么设计 1.2.1 思考 1.2.2 了解一下计算机的存储分级 1.2.3 解释 1.3 往下要明确几 ...

  7. [ Linux ] 进程概念,pcb,查看进程,pid,ppid,fork

    文章目录 一.进程 1.1 基本概念 1.2 描述进程 - PCB 1.3 查看进程 1.3.1 第一种方式 1.3.2 第二种方式 1.4 通过系统调用获取进程标识符 1.4.1 获取进程的pid ...

  8. python获取进程编号(目的、获取当前进程编号、根据编号杀死指定进程号、获取当前父进程编号)

    1. 获取进程编号的目的         获取进程编号的目的是验证主进程和子进程的关系,可以得知子进程是由那个主进程创建出来的. 获取进程编号的两种操作 获取当前进程编号 获取当前父进程编号 2. 获 ...

  9. jquery获取动态表格行号_jquery datatables双击,获取行号。

    function dbClickDatatables(rows) { $("#@(Perfix)tbData tbody tr").dblclick(function(e){ de ...

  10. linux rootkit 端口复用,Linux Rootkit系列三:实例详解 Rootkit 必备的基本功能

    前言鉴于笔者知识能力上的不足,如有疏忽,欢迎纠正. 测试建议: 不要在物理机测试!不要在物理机测试! 不要在物理机测试! 概要 在 上一篇文章中笔者详细地阐述了基于直接修改系统调用表 (即 sys_c ...

最新文章

  1. 【响应式Web前端设计】CSS后代选择器和子代选择器
  2. 【BZOJ1022】小约翰的游戏(博弈论)
  3. 我理解的--java观察者模式
  4. 解密初、中、高级程序员的进化之路
  5. php登录注册demo,PHP实现登录功能DEMO
  6. 微软拥抱开源,Win10为啥要引入真Linux4.X内核?
  7. 利用cookie模拟登陆知乎
  8. 工作88:vue实现当前页面刷新
  9. 自制简单的小型Linux,自制小型Linux系统
  10. visio中公式太小_时间序列问题中三种常见的计量模型
  11. java file.length 单位_Java.io.File.length()返回0
  12. Redis基本操作练习
  13. 安装Ubuntu时,提示“没有根文件系统 ”
  14. Win10使用Dism命令提取(备份)和还原驱动程序
  15. 神舟IV号开发板-带屏例程源码修改bug(2.8寸屏)
  16. appStore苹果退款通知
  17. sequence与sequencer
  18. 如何添加Google统计在自己的网站
  19. python-完整的for循环语法
  20. 自学Python3脚本100例(1-10)

热门文章

  1. 体验极速Android SDK的更新与下载
  2. Mongo, Express, Angular, Node-- MEAN Stack搭建
  3. 你的第一个 iOS 应用程序: 100% 的编程方式
  4. poj 3253 哈夫曼树 经典 运用了优先队列 总和最少
  5. js获取url参数方法
  6. 拓端tecdat|R语言生态学建模:增强回归树(BRT)预测短鳍鳗生存分布和影响因素
  7. 拓端tecdat|R语言中的多类别问题的绩效衡量:F1-score 和广义AUC
  8. 【C/C++】C++函数
  9. Ubuntu16.04下安装、配置Sublime运行环境
  10. java win7 管理员权限_Win7下超级管理员创建普通权限任务