使用fork创建多个进程

用户3691967

与我的朋友强烈讨论之后,我们决定问我们的直觉是否正确。问题出在fork()函数或者子进程上。这是代码:

int main()
{
    int status;
    if(!fork()) execl("pp1",NULL);
    if(!fork()) execl("pp2",NULL);
    if(!fork()) execl("pp3",NULL);
    wait(&status);
    return status;
}

作者解释说,该程序将只创建3个子进程,但是当涉及到第一个子进程时,它将输入第一个“ if”并执行pp1作为新进程,但具有与子进程相同的pid,就可以了。 。问题在于第二个和第三个孩子,它将如何运行此代码。我们的直觉是,我们不会到达第二和第三“ if”。程序pp1将由3个子进程全部运行3次。

你有什么感想?结果如何?

hek2mgl

请注意的返回值fork()来自man 2 fork

成功后,将在父级中返回子进程的PID,在子级中返回0。如果失败,则在父级中返回-1,不创建任何子级进程,并适当地设置errno。

意味着子进程0在成功派生后收到至于!0计算结果为true孩子执行execl的话,而爸爸向前几步到下一个fork()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用fork创建多个进程

来自分类Dev

如何使用fork创建并行子进程

来自分类Dev

计算在for循环中使用fork创建的进程数

来自分类Dev

在C语言中使用fork()创建特定的进程树

来自分类Dev

使用fork创建新进程,但为变量打印相同的地址

来自分类Dev

在使用fork()创建的C语言中,将子进程中的值返回给其父进程

来自分类Dev

杀死用fork创建的子进程

来自分类Dev

子进程从创建时的第一行开始(使用fork)

来自分类Dev

当父级使用fork时,子级进程是在连续的内存空间中创建的吗?

来自分类Dev

使用 fork() 创建进程树然后给它们编号并在数组上显示

来自分类Dev

使用 fork() 创建新进程时写时复制优化的优点

来自分类Dev

使用boost创建多个子进程以异步运行

来自分类Dev

显示使用fork循环的进程数

来自分类Dev

这些fork()语句创建了多少个进程?

来自分类Dev

python os.fork()可以创建多少个进程

来自分类Dev

python os.fork()可以创建多少个进程

来自分类Dev

在C中分解由fork()创建的子进程

来自分类Dev

fork()创建的进程在python中将做什么?

来自分类Dev

!fork() 是否创建了一个进程?

来自分类Dev

如何为多个进程创建监视循环?

来自分类Dev

Shell脚本运行命令创建多个进程

来自分类Dev

Docker-R创建多个进程

来自分类Dev

使用bash执行多个进程

来自分类Dev

使用 vfork() 处理多个进程

来自分类Dev

在Bottle应用程序中使用多进程创建多个Bottle实例

来自分类Dev

使用fork:从父级访问子进程内存

来自分类Dev

进程使用fork运行xterm实例时出错

来自分类Dev

在shell中使用fork命令来打印进程ID

来自分类Dev

龙卷风多个进程:创建多个MySQL连接

Related 相关文章

热门标签

归档