DarkSpect

Pipes2

Mar 18th, 2012
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.76 KB | None | 0 0
  1. int main(){
  2.     pid_t p[NFILHOS];
  3.     int v[TAM], id,dados[NFILHOS][2],res[NFILHOS];
  4.     init_vec(v);
  5.     id=cria_filhos(p, NFILHOS);     //cria 5 filhos (pai fica com o id=0)
  6.     if(id>0){
  7.         close(dados[(id-1)][0]);
  8.         res[id-1]=sum(v,((TAM/NFILHOS)*(id-1)),((TAM/NFILHOS)*id));//retorna o resultado
  9.         printf("O filho %d res=%d\n",id,res[id-1]);
  10.         write(dados[(id-1)][1], &res[id-1],sizeof(int));
  11.         close(dados[(id-1)][1]);
  12.         exit(id);
  13.     }else if(id==0){
  14.         aceita_mfilhos(NFILHOS);        //espera que os filhos morram
  15.         int resfinal=0,i;
  16.         for(i=0;i<NFILHOS;i++){
  17.             close(dados[i][1]);
  18.             read(dados[i][0],&res[i],sizeof(int));
  19.             printf("res2=%d\n",res[i]);
  20.             close(dados[i][0]);
  21.             resfinal+=res[i];
  22.         }
  23.         printf("O resultado final é de %d\n",resfinal);
  24.     }
  25.    
  26.     return 0;
  27. }
Advertisement
Add Comment
Please, Sign In to add comment