我試過谷歌,但是發現getppid()
它得到了當前過程的父親pid。linux:以編程方式獲取另一個進程的父進程?
我需要類似getppid(some_other_pid)
,有沒有這樣的事情?基本上需要一些進程的PID並返回父進程的PID。
我試過谷歌,但是發現getppid()
它得到了當前過程的父親pid。linux:以編程方式獲取另一個進程的父進程?
我需要類似getppid(some_other_pid)
,有沒有這樣的事情?基本上需要一些進程的PID並返回父進程的PID。
或Unix外殼,你可以嘗試ps -p <child_pid> -o ppid=
真棒簡單的答案。對於一個命令,您可以複製/粘貼以查看它的行爲。嘗試**'ps -p $$ -o ppid ='**。 $$是當前的進程ID。 – Jess 2013-04-18 16:53:20
另一種方式從proc入口得到它:
cat /proc/<pid>/status | grep PPid:
我7年遲到了,但任何人誰可以在此絆倒問題,這裏是OS X的替代解決方案。這裏發佈的其他答案是正確的,sysctl()
將完成這項工作,但您也可以使用proc_pidinfo
獲取有關進程的大量有用信息。
#include <libproc.h>
int getppid(const pid_t pid)
{
proc_bsdinfo info;
proc_pidinfo(pid, PROC_PIDTBSDINFO, 0, &info, sizeof(info));
return info.pbi_ppid;
}
很明顯,需要額外的錯誤檢查。
看看sysctl()系統調用和這個鏈接。 http://www.objectpark.net/parentpid.html – vpram86 2009-10-06 13:37:13
@Aviator,爲什麼評論而不是答案? – hasen 2009-10-06 13:41:56