Advertisement
dykow

Untitled

May 6th, 2021
805
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.18 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. double obl_skladowa(int i, int n)
  6. {
  7.     double k = pow(k, 2) - 12;
  8.     double l = pow(p, 3);
  9.     double m = pow(n, 3) * pow(i, 3);
  10.     return l/m;
  11. }
  12.        
  13. int main(int argc, char* argv[])
  14. {              
  15.     int n = atoi(argv[1]);
  16.     int k = atoi(argv[2]);
  17.     int rozm_dane = n / k;
  18.     int i = 1;
  19.     int j = 0;
  20.     double suma, el, el_wynik;
  21.     int pipefd[2];
  22.     pid_t pid;
  23.    
  24.     if(pipe(pipefd) == -1)
  25.     {
  26.         perror("err pipe\n");
  27.         exit(EXIT_FAILURE);
  28.     }
  29.    
  30.  
  31.     for(i = 0; i < k; ++i)
  32.     {
  33.         for (j = 0; j < rozm_dane; ++j)
  34.         {
  35.             pid = fork();
  36.  
  37.             if(pid == -1)
  38.             {
  39.                 perror("err fork\n");
  40.                 exit(EXIT_FAILURE);
  41.             }
  42.  
  43.             if(pid == 0)
  44.             {
  45.                 el = obl_skladowa(i, n);
  46.                 write(pipefd[1], &el, sizeof(double));
  47.                 exit(EXIT_SUCCESS);
  48.             }
  49.         }
  50.     }
  51.    
  52.     close(pipefd[1]);
  53.     while(read(pipefd[0], &el_wynik, sizeof(double)))
  54.         suma += el_wynik;
  55.  
  56.     printf("suma: %f\n", suma);
  57.     return EXIT_SUCCESS;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement