我正在尝试编写一个程序,在其中使用fork创建2个子进程。第一个孩子从用户那里得到一个数字A并将其写入p1中,然后第二个孩子从用户那里得到一个数字B并将其写入p2中,然后父亲读取了值A和B并打印出它们的乘法结果。尝试了这个,但是没有用
#include <stdio.h>
#include <unistd.h>
#include <wait.h>
int main()
{
int A,B,k,p1[2],p2[2];
pipe(p1);
pipe(p2);
for(k=0;k<2;k++)
{
switch(fork())
{
case -1:
break;
case 0:
if(k==0)
{
printf("\n Enter value of A = ");
scanf("%d",&A);
close(p1[0]);
write(p1[1],&A,sizeof(int));
close(p1[1]);
break;
}
if(k==1)
{
printf("\n Enter value of B = ");
scanf("%d",&B);
close(p2[0]);
write(p2[1],&B,sizeof(int));
close(p2[1]);
break;
}
}
}
read(p1[0],&A,sizeof(int));
read(p2[0],&B,sizeof(int));
printf("\n Multipliction = %d",A*B);
close(p2[0]);
close(p1[0]);
printf("\n");
return 0;
}