使用 fork() 按顺序打印数组
Printing an array in order with 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));
}
}
现在的问题是我希望它也按顺序排列(升序或降序,无所谓)我该怎么做?
这里对您的代码稍作修改,以便按顺序打印。
/* Create children procs */
pid = fork();
wait();
如上建议,您只需使用等待创建下一个子进程即可。
我正在尝试借助 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));
}
}
现在的问题是我希望它也按顺序排列(升序或降序,无所谓)我该怎么做?
这里对您的代码稍作修改,以便按顺序打印。
/* Create children procs */
pid = fork();
wait();
如上建议,您只需使用等待创建下一个子进程即可。