Napisz program z wykorzystaniem rozwidlenia gdzie potomek doda dwie wartości a proces macierzysty pomnoży te wartosci i wyświetli różnice pomiędzy tymi wynikami (suma i iloczynem)
#include<stdlib.h>
#include<stdio.h>
#include<wait.h>
int main(int argc,char **argv)
{
int a,b,suma,iloczyn;
int roznica;
printf("Wpisz liczby \n");
scanf("%d%d",&a,&b);
printf(" a=%d \n",a);
printf(" b=%d \n",b);
pid_t id =fork();
if(id==0)
{
printf("PDI:%d- jestem procesem potomnym \n",id);
suma=a+b;
printf("Suma a+b wynosi %d\n",suma);
printf("PDI:%d-proces potomny konczy...\n",id);
}
else
{
int status=210;
printf("PDI:%d -jestem procesem macierzystym \n",id);
iloczyn=a*b;
printf("Iloraz a*b wynosi %d\n",iloczyn);
id = waitpid(id,&status ,0);
printf("PDI:%d -proces potomny skonczyl i zwrocil status:%d\n",id,WEXITSTATUS(status));
roznica = suma-iloczyn;
printf("Roznica suma-iloczyn wynosi %d\n ",roznica);
printf("PDI:%d -proces macierzysty konczy...\n",id);
}
return EXIT_SUCCESS;
}
Moj problem polega na tym ze w procesie macierzystym roznica wychod nie taka jaka powinnaa