子进程如何打印其根父进程ID

时间:2015-12-11 08:34:59

标签: c linux

如果在一个简单的C程序中,我正在编写4个fork() API调用,当我执行该程序时,在Linux上创建的总进程将为16。

  1. 使用getpid()可以获取当前进程的进程ID。

  2. 使用getppid()可以获取调用进程的父进程ID。

  3.   

    问题:最后一个孩子如何知道第一个过程的进程ID   (祖先的父ID)我从中调用fork() API四次?

    注意:假设所有进程都在运行;没人死。

2 个答案:

答案 0 :(得分:1)

只需使用

first = getpid()

在所有分叉之前,并在子代中使用该变量。

答案 1 :(得分:0)

1)您可以使用名为ps l的进程树命令(对于ppid单独的表是有的。)

2)使用getppid(),您可以递归检查并进入主进程。在这里你需要一些智能逻辑。