我在C中使用fork()来分解运行本地数组的工作,让每个进程运行一半,然后将数组中每个点的数字相乘,然后将产品设置在第三个数组中.
pid_t pid;
pid = fork();
if (pid == 0){
for (i=1; i<((SIZE/2)+1); i++)
{
output[i] = (one[i] * two[i]);
}
exit(0);
}
else{
wait(NULL);
for (i=((SIZE/2)+1); i<(SIZE+1); i++)
{
output[i] = one[i]*two[i];
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我在这段代码之后打印产品数组时,我只接收父进程设置的部分,我假设这是因为子进程将其值存储在父进程无法选择的内存中打印产品阵列时,但我不完全确定.在此先感谢您的帮助.