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命令或功能吗?任何人都有一个好主意,请给我一个解决方案!希望得到积极的答复!

//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/

10-11 22:12
查看更多