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 に答える