创建父进程创建一个子进程的N个进程链

时间:2017-03-11 23:10:00

标签: c process operating-system fork

我必须创建四个进程,每个儿子必须创建一个儿子并等待它完成。

PROCESS 0 --> PROCESS 1 --> PROCESS 2 --> PROCESS 3 --> PROCESS 4

怎么做?到目前为止,我已尝试过以下内容:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <errno.h>
#include <fcntl.h> 
#define NUM_PROC 5


int main (void)
{
    int pid;
    int i;
    int status;
    for (i=0; i < NUM_PROC; i++)
    {
        if ((pid=fork()) <0 )
        {
            printf("Error in forking\n");
            exit(EXIT_FAILURE);
        } else if (pid ==0) {
            printf("Sono: %d, mio padre e: %d\n", getpid(), getppid());     
            pid = fork();
        }
        else {
            printf("Sono: %d, mio padre e: %d\n", getpid(), getppid());   
            wait( &status);
        }
    }
    exit(EXIT_SUCCESS);
}

1 个答案:

答案 0 :(得分:1)

主程序在循环中创建一个新的子进程,然后运行与父进程相同的循环并创建更多的子进程。

使用.accept(MediaType.APPLICATION_XML)循环并推广for进程:

N