如果在一个简单的C程序中,我正在编写4个fork()
API调用,当我执行该程序时,在Linux上创建的总进程将为16。
使用getpid()可以获取当前进程的进程ID。
使用getppid()可以获取调用进程的父进程ID。
问题:最后一个孩子如何知道第一个过程的进程ID (祖先的父ID)我从中调用
fork()
API四次?
注意:假设所有进程都在运行;没人死。
答案 0 :(得分:1)
只需使用
first = getpid()
在所有分叉之前,并在子代中使用该变量。
答案 1 :(得分:0)
1)您可以使用名为ps l
的进程树命令(对于ppid单独的表是有的。)
2)使用getppid()
,您可以递归检查并进入主进程。在这里你需要一些智能逻辑。