使用 frok() 函数一次创建多个子进程

前面的文章我们讨论了系统函数 fork() 的应用,他可以在一个进程中再创建另外一个子进程,本文测试使用一个 for 循环创建多个子进程,中间一些注意事项已经全部用注释标注清楚。

【实现代码】

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char* argv[])
{
    pid_t pid;
    int i;
    for (i = 0; i < 5; i++)
    {
        pid = fork();
        if (pid == 0)
            // 当判断返回值是子进程时跳出for循环
            break;
    }
    // 如果是子进程跳出循环,那么i一定小于5
    if (i < 5)
    {
        printf("child : I'm %dth child, PID = %d ParentID = %d\n", 
                i + 1, getpid(), getppid());
    }
    // 如果 i == 5 那证明整个循环都走完了,最终是父进程执行
    else if (i == 5)
    {
        // wait 1秒,等待所有子进程创建完毕
        sleep(1);
        printf("parent: I'm parent, PID = %d\n", getpid());
    }
    return 0;
}

【运行结果】

2015-06-29_142910


Warning: Missing argument 1 for cwppos_show_review(), called in /home/wwwroot/www.mycode.net.cn/wp-content/themes/flat/content-single.php on line 29 and defined in /home/wwwroot/www.mycode.net.cn/wp-content/plugins/wp-product-review/includes/legacy.php on line 18

Notice: Undefined variable: post_id in /home/wwwroot/www.mycode.net.cn/wp-content/plugins/wp-product-review/includes/legacy.php on line 20

发表评论