创建孩子的Linux

创建孩子的Linux

问题描述:

过程谁可以创建其他进程(子进程)处理,同时,以下是正确的:创建孩子的Linux

一)该工艺具有PID = 0

B)子进程能够继续独立生活

C)处理,创造者复制它的上下文子进程

d)上述所有属实

我的看法是, a)不能因为PID = 0被保留,处理器创建者不会将其上下文复制到子进程中,所以我在考虑b,因为它可以独立生活,但不会被称为守护进程?那么这个问题是否有一个正确的答案呢?

fork()系统调用会创建现有进程的克隆/副本。现在两个进程正在运行,具有相同的数据,程序中的位置以及进程映像。区别在于fork()系统调用的返回值。由于fork()函数向父(分叉)过程和子(分叉)过程返回不同的值,因此可以确定您是在父项还是在子项中运行。

父进程(fork)在父进程中接收到结果fork()== childpid,所以父进程知道该进程的子进程号(因此可以终止它,等待它终止等) 。

父代也可能收到fork()== -1结果,表明fork()系统调用失败。

孩子(分叉)进程在子进程中接收到结果fork()== 0,并且如果你想知道孩子的进程ID,你可以直接询问当前进程ID来获得进程孩子的ID。

这里是一个相关的贴子,我发布了代码示例,How to use fork()。 (a)不是真的,因为每个父母和孩子都有一个不是= 0的进程ID,但是fork()的返回值在孩子中总是= 0。所以可能看起来手册是说PID是= 0。 (b)部分是真实的。部分(c)不是真的,因为它不是复制任何东西的过程创建者,而是复制过程中的系统调用(在父过程的上下文中)。

阅读关于fork了解如何创建子进程。这可能很好地回答您的问题