c - 创建了多少进程

标签 c linux ubuntu fork

我想知道这段代码中从 fork() 创建了多少个进程,我做了一些跟踪,结果以 20 个进程结束,但我无法确定,你能帮我吗? 谢谢。

#include <stdio.h> 
#include <sys/types.h>

int main()
{
    **
    fork();
    fork();
    if( fork() > 0)
    {
        fork();
        fork();
    }
    return 0;
}

最佳答案

“查看”每条语句执行时进程数量如何变化:

/* before */     /* ... */             /* after */
/*      1 */     fork();               /*     2 */
/*      2 */     fork();               /*     4 */
/*      4 */     if (fork() > 0) {     /*     8 (4 go into the if) */
/*      8 */         fork();           /*    12: 4 (outside) + 8 (inside) */
/*     12 */         fork();           /*    20: 4 (outside) + 16 (inside) */
                 }
/*     20 */     /* ... */             /* total processes: 20 */

关于c - 创建了多少进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60396860/

相关文章:

c - malloc() 是不可重入但线程安全的?

Linux查看用户的命令

linux - chown 和 chmod 自动启动

Android:在 Ubuntu 上阅读/发送短信?

c - 重新分配() : invalid next size:

c - grep C 类型定义的正则表达式

c - 正在读取文件,但未保存

c - fscanf 和 seg 的问题。故障

c++ - C++ 中的哈希函数 SHA1

php - Laravel Composer 更新失败 Ubuntu