我正在 for
-loop中创建子进程 . 在子进程内部,我可以使用 getpid()
检索子PID .
但是,出于某种原因,当我尝试将 getpid()
的值存储到父进程声明的变量中时,当我在父进程中检查它时,更改无效 . 我太确定了 .
无论如何,将子PID的 getpid()
结果(从子进程调用时)存储到父进程的变量中的方法是什么?
或者也许另一种方法是将 fork()
存储到父变量中,并在该变量上调用一些函数来检索孩子's PID? I don'知道如何做到这一点,所以如果这是更好的方法,你会怎么做?
5 回答
fork
已经返回孩子的pid . 只需存储返回值 .看看男人2叉:
正如前面的回答中提到的那样,“fork()向子进程返回值0,并将子进程的进程ID返回给父进程 . ”所以,代码可以用这种方式编写:
这个link非常有帮助,并详细解释 .
如果您通过以下方式调用fork:
那么pid实际上就是你的孩子PID . 所以你可以从父母那里打印出来 .
如果fork()成功创建,则它在子进程中返回0值 .
获取父进程和子进程的进程ID有两个主要功能 . getpid()和getppid()