使用fork()按顺序打印数组

时间:2015-02-06 06:44:56

标签: c fork

我正在尝试使用fork打印一个数组,其中每个元素都将由一个单独的子进程打印。

void printArray_fork(int *p_array, int length){
    int i;

    pid_t pid;
    for(i = 0; i<length;i++){
        /* Create children procs */
        pid = fork();
        if(pid==0){
            break;
        }
    }

    if(pid == 0) {
            printf( "My process ID : %d value: %d\n",getpid(),*(p_array + i));
    }
}

现在的问题是,我希望它也是有序的(升序或降序,无关紧要)我该怎么做?

1 个答案:

答案 0 :(得分:0)

这里对您的代码进行一些修改,以便按顺序打印。

  /* Create children procs */
     pid = fork();
     wait();

如上所述,您只需要等待创建下一个子进程。