0

有没有办法让我的pid的父母的父母?有getpid()getppid(),我在找“ getpppid()

PS:我在 Linux 上,代码只能在 Linux 上运行(不是 Unix 也不是任何其他变体)

4

1 回答 1

2

给你。

pid_t getpppid(void)
{
    char exe[256],proc[81],state;
    FILE *fp;
    int pid,ppid=-1;

    snprintf(proc,81,"/proc/%d/stat",(int)getppid());
    fp=fopen(proc,"r");
    if(fp)
    {
        fscanf(fp,"%d %s %c %d",&pid,exe,&state,&ppid);
        fclose(fp);
    }
    return (pid_t)ppid;
}

编辑:请记住,如果您的父进程或您的进程自启动以来调用 setuid(),则您的程序可能没有读取该进程统计信息的权限。

于 2013-10-01T22:07:51.697 回答