我试过谷歌,但是发现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