Process 两个fork()调用?
我知道,如果我调用Process 两个fork()调用?,process,system-calls,fork,Process,System Calls,Fork,我知道,如果我调用fork()一次,父对象将收到子对象id,而子对象将收到0,如果为-1,则表示失败 我的问题是,如果我有两个fork()调用,如何区分child1、child2和parent 我想: fork1_id <0 || fork2_id < 0 >> fail fork2_id==0 >> child2 fork1_id==fork2_id >> child1 else >> parent fork1\u id
fork()
一次,父对象将收到子对象id,而子对象将收到0,如果为-1,则表示失败
我的问题是,如果我有两个fork()
调用,如何区分child1、child2和parent
我想:
fork1_id <0 || fork2_id < 0 >> fail
fork2_id==0 >> child2
fork1_id==fork2_id >> child1
else >> parent
fork1\u id>失败
fork2_id==0>>child2
fork1\u id==fork2\u id>>child1
else>>父项
我的问题是,如果我有两个fork()调用,如何区分child1和child2以及parent
您需要发布实际的代码,因为您的意思不明确。如果你的字面意思是:
fork()
fork()
然后你必须区分:
Parent -> Child1 -> Grandchild
-> Child2
因为在第一个叉之后,第一个孩子会叉孙子
或者,您可能意味着第二个fork只在父对象中。在任何情况下,您都可以用与第一个fork相同的方法来区分第二个fork的父级和子级
我的问题是,如果我有两个fork()调用,如何区分child1和child2以及parent
您需要发布实际的代码,因为您的意思不明确。如果你的字面意思是:
fork()
fork()
然后你必须区分:
Parent -> Child1 -> Grandchild
-> Child2
因为在第一个叉之后,第一个孩子会叉孙子
或者,您可能意味着第二个fork只在父对象中。在任何情况下,您都可以用与第一个fork相同的方法来区分第二个fork的父级和子级
我的问题是,如果我有两个fork()调用,如何区分child1和child2以及parent
您需要发布实际的代码,因为您的意思不明确。如果你的字面意思是:
fork()
fork()
然后你必须区分:
Parent -> Child1 -> Grandchild
-> Child2
因为在第一个叉之后,第一个孩子会叉孙子
或者,您可能意味着第二个fork只在父对象中。在任何情况下,您都可以用与第一个fork相同的方法来区分第二个fork的父级和子级
我的问题是,如果我有两个fork()调用,如何区分child1和child2以及parent
您需要发布实际的代码,因为您的意思不明确。如果你的字面意思是:
fork()
fork()
然后你必须区分:
Parent -> Child1 -> Grandchild
-> Child2
因为在第一个叉之后,第一个孩子会叉孙子
或者,您可能意味着第二个fork只在父对象中。在任何情况下,您都可以使用与第一个fork相同的方法来区分第二个fork的父级和子级。这是我的代码;我需要在第一个fork之后调用另一个fork,然后根据if_条件:print i是child_1进程或child_2进程或我是父进程。。。希望现在清楚了
int main()
{
pid_t childpid;
childpid = fork();
if (childpid == 0)
{
printf("I am the child process!\n");
}
else if(childpid > 0)
{
printf("I am the parent process!\n");
}
else
{
perror("fork"); /* display error message */
}
return 0;
}
这是我的密码;我需要在第一个fork之后调用另一个fork,然后根据if_条件:print i是child_1进程或child_2进程或我是父进程。。。希望现在清楚了
int main()
{
pid_t childpid;
childpid = fork();
if (childpid == 0)
{
printf("I am the child process!\n");
}
else if(childpid > 0)
{
printf("I am the parent process!\n");
}
else
{
perror("fork"); /* display error message */
}
return 0;
}
这是我的密码;我需要在第一个fork之后调用另一个fork,然后根据if_条件:print i是child_1进程或child_2进程或我是父进程。。。希望现在清楚了
int main()
{
pid_t childpid;
childpid = fork();
if (childpid == 0)
{
printf("I am the child process!\n");
}
else if(childpid > 0)
{
printf("I am the parent process!\n");
}
else
{
perror("fork"); /* display error message */
}
return 0;
}
这是我的密码;我需要在第一个fork之后调用另一个fork,然后根据if_条件:print i是child_1进程或child_2进程或我是父进程。。。希望现在清楚了
int main()
{
pid_t childpid;
childpid = fork();
if (childpid == 0)
{
printf("I am the child process!\n");
}
else if(childpid > 0)
{
printf("I am the parent process!\n");
}
else
{
perror("fork"); /* display error message */
}
return 0;
}
我没有投票将此作为“离题”来结束,因为关于
fork()
的问题在这里可以说是离题的,因为这是一个*nix问题。然而,我确实投票以“不清楚”结束了它(见我的答案)。我没有投票以“离题”结束它,因为关于fork()
的问题在这里可以说是主题,因为它是一个*nix问题。然而,我确实投票以“不清楚”结束了它(见我的答案)。我没有投票以“离题”结束它,因为关于fork()
的问题在这里可以说是主题,因为它是一个*nix问题。然而,我确实投票以“不清楚”结束了它(见我的答案)。我没有投票以“离题”结束它,因为关于fork()
的问题在这里可以说是主题,因为它是一个*nix问题。然而,我确实投票以“不清楚”为由关闭了它(见我的答案)。