- 1、主進程創建2個子進程,主進程通過兩個管道分別與兩個子進程連接
- 2、第一個子進程計算從1加到50的和,并將結果通過管道送給父進程
- 3、第一個子進程計算從50加到100的和,并將結果通過管道送給父進程
4、父進程讀取兩個子進程的結果,將他們相加,打印出來,結果為5050
code:
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<stdlib.h>
#include<sys/wait.h>int main(){int fd1[2],fd2[2];char buf[512];int i,sum=0;int sum1,sum2;pid_t pid1,pid2;pipe(fd1);pipe(fd2);pid1=fork();if(pid1>0)pid2=fork();if(pid1==0){for(i=0;i<51;i++)sum+=i;write(fd1[1],&sum,sizeof(int));exit(0);}if(pid2==0){for(i=51;i<101;i++)sum+=i;write(fd2[1],&sum,sizeof(int));exit(0);}read(fd1[0],&sum1,sizeof(int));read(fd2[0],&sum2,sizeof(int));printf("%d\n",sum1+sum2);return 0;
}