linux: al livello di programmazione ottiene il padre pid di un altro processo?

Ho provato google, ma getppid() trovato getppid() che ottiene il pid genitore del processo corrente .

Ho bisogno di qualcosa come getppid(some_other_pid) , c’è una cosa del genere? Praticamente prende il pid di qualche processo e restituisce il processo genitore ‘pid.

Penso che la cosa più semplice sarebbe aprire “/ proc” e analizzare il contenuto.

Troverai il ppid come il 4 ° parametro di / proc / pid / stat

o da una shell unix puoi provare ps -p -o ppid=

Sono 7 anni in ritardo per la festa, ma per chiunque possa imbattersi in questa domanda, ecco una soluzione alternativa su OS X. Altre risposte pubblicate qui sono corrette e sysctl() farà il lavoro, ma puoi anche usare proc_pidinfo per ottenere un molte informazioni utili su un processo.

 #include  int getppid(const pid_t pid) { proc_bsdinfo info; proc_pidinfo(pid, PROC_PIDTBSDINFO, 0, &info, sizeof(info)); return info.pbi_ppid; } 

Ovviamente, è richiesto un ulteriore controllo degli errori.

Puoi dare un’occhiata alla chiamata di sistema sysctl() e questo link.

un altro modo per ottenerlo dalla proc proc:

 cat /proc//status | grep PPid: