linux c 获取指定进程 父进程pid

灰太狼 2021-09-07 06:01 719阅读 0赞

示例如下:

  1. int GetFatherPid(int pid)
  2. {
  3. char dir[1024]={0};
  4. char path[1024] = {0};
  5. char buf[1024] = {0};
  6. int rpid = 0;
  7. int fpid=0;
  8. char fpth[1024]={0};
  9. struct stat st;
  10. ssize_t ret =0;
  11. sprintf(dir,"/proc/%d/",pid);
  12. sprintf(path,"%sstat",dir);
  13. if(stat(path,&st)!=0)
  14. {
  15. return -2;
  16. }
  17. memset(buf,0,strlen(buf));
  18. FILE * fp = fopen(path,"r");
  19. ret += fread(buf + ret,1,300-ret,fp);
  20. fclose(fp);
  21. sscanf(buf,"%*d %*c%s %*c %d %*s",fpth,&fpid);
  22. fpth[strlen(fpth)-1]='\0';
  23. return rpid;
  24. }

发表评论

表情:
评论列表 (有 0 条评论,719人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Linux查看pid进程

    一、查看端口占用的进程 1、lsof -i:端口号 查看某一端口的占用情况 2、netstat -ntlp 查看当前所有TCP端口‘ 结合grep可以进一步查看具体

    相关 Linux系统编程-进程(三):进程号、获取进程号函数【getpid():获取进程号(PID)】【getppid():获取进程号(PPID)】【getpgid():获取进程组号(PGID)】

    每个进程都由一个进程号来标识,其类型为 pid\_t(整型),进程号的范围:0~32767。 进程号总是唯一的,但进程号可以重用。 当一个进程终止后,其进程号就可以再次使用