私のpidの親の親を取得する方法はありますか? ありますgetpid()
とgetppid()
, 私 は " getpppid()
"を 探し て います
PS: 私は Linux を使用しており、コードは Linux でのみ実行されます (Unix やその他のバリアントでは実行されません)。
はい、どうぞ。
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() を呼び出した場合、プログラムにはそのプロセス統計を読み取る権限がない可能性があることを覚えておいてください。