linux C 获取pid终极父进程的PID
2016-10-09 17:27
441 查看
int GetFatherPid(int pid) { char dir[1024]={0}; char path[1024] = {0}; char buf[1024] = {0}; int rpid = 0; int fpid=0; char fpth[1024]={0}; struct stat st; ssize_t ret =0; sprintf(dir,"/proc/%d/",pid); sprintf(path,"%sstat",dir); if(stat(path,&st)!=0) { return -2; } memset(buf,0,strlen(buf)); FILE * fp = fopen(path,"r"); ret += fread(buf + ret,1,300-ret,fp); fclose(fp); sscanf(buf,"%*d %*c%s %*c %d %*s",fpth,&fpid); fpth[strlen(fpth)-1]='\0'; if(strcmp(fpth,"bash")!=0 && strcmp(fpth,"sudo")!=0 ) //bash 终端 sudo 终端 { if(fpid==1) { return pid; } else if(fpid==2) { return -1; //内核线程 } rpid = GetFatherPid(fpid); if(rpid == 0) { rpid = pid; } } return rpid; }
相关文章推荐
- 进程名字获取进程的进程号PID,类似pidof,C函数,适合linux,AIX和hp-unix平台
- linux下根据进程名字获取PID,类似pidof(转)
- linux命令(26):Bash Shell 获取进程 PID
- linux 根据 进程名 获取 对应 PID 来 判断 使用 内存情况
- linux根据pid获取进程名和获取进程pid(c语言获取pid)
- linux下ss命令源码学习(二):linux c代码获取后台进程名称及pid
- Linux命令 -- 获取 进程信息:name 、stat 、PID
- linux根据pid获取进程名和获取进程pid(c语言获取pid)
- linux获取一个进程pid的父进程的两种方法
- Linux获取进程pid
- Linux 精准获取进程pid--转
- JAVA实现获取Linux下进程PID并杀掉进程
- linux 下根据进程名字获取进程的进程号PID,类似pidof,C函数
- linux 下根据进程名字获取进程的进程号PID
- Linux开发已知进程名字获取PID号(C语言)
- linux根据pid获取进程名和获取进程pid(c语言获取pid)
- Linux驱动获取进程PID和进程名字
- linux获取精准进程PID之pgrep命令
- Linux获取监听指定端口的进程PID
- linux: 获取监听指定端口的进程PID