This question already has answers here:
How to get return value from child process to parent?
(2个答案)
在11个月前关闭。
我必须添加由不同过程得出的两个结果。首先,在特定的子进程中将1加到100。接下来,在该进程的父进程中将101添加到200。之后,我想使用fork()和wait()获得这两个结果的总和。我希望此最终过程应在父过程中完成。我不知道如何将1-100的总和扔给父进程。我应该使用特殊的Linux命令或功能吗?任何人都有一个好主意,请给我一个解决方案!希望得到积极的答复!
(2个答案)
在11个月前关闭。
我必须添加由不同过程得出的两个结果。首先,在特定的子进程中将1加到100。接下来,在该进程的父进程中将101添加到200。之后,我想使用fork()和wait()获得这两个结果的总和。我希望此最终过程应在父过程中完成。我不知道如何将1-100的总和扔给父进程。我应该使用特殊的Linux命令或功能吗?任何人都有一个好主意,请给我一个解决方案!希望得到积极的答复!
//child process
for(i = 1 to 100)
sum += i;
//parent process
for(i = 101 to 200)
sum += i;
//parent process??? or not
print("sum 1 to 200"= ???)
最佳答案
您可以使用共享内存,管道,文件,域套接字等。
或使用多线程
int *sum;
sum=(int *)mmap(NULL, sizeof(int)*count_of_process, PROT_READ|PROT_WRITE,
MAP_SHARED|MAP_ANONYMOUS, -1, 0);
关于c - 如何使用fork()与父进程和子进程进行数字求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55410372/