Advertisement
desdemona

gcc 5fork.c -o 5fork -lm

Apr 24th, 2013
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.24 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <time.h>
  5. #include <math.h>
  6.  
  7. #define ODCZYT 0
  8. #define ZAPIS 1
  9.  
  10. int pierwsza(int x)
  11. {
  12.     int i=0;
  13.     int pierwsza=1;
  14.     int pierwiastek=(int)sqrt(x);
  15.     if(x==1)
  16.         return 0;
  17.    
  18.     for(i=2; i<=pierwiastek; i++)
  19.     {
  20.         if(x%i == 0)
  21.         {
  22.             pierwsza=0;
  23.             break;
  24.         }
  25.     }
  26.     return pierwsza;
  27. }
  28.  
  29. int main()
  30. {
  31.     int bogdan[2];
  32.     int bogdan2[2];
  33.     int i=0;
  34.     int N=100000;
  35.     int x;
  36.     int numerek=666;
  37.     srand(time(NULL));
  38.     pipe(bogdan);
  39.     pipe(bogdan2);
  40.     for(i=0; i<5; i++)
  41.     {
  42.         if(numerek!=0)
  43.             numerek=fork();
  44.     }
  45.    
  46.     if(numerek!=0)
  47.     {
  48.         printf("macierzysty\n");
  49.         for(i=0; i<5; i++)
  50.         {
  51.             x=rand()%N;
  52.             write(bogdan[ZAPIS], &x, sizeof(x));
  53.             printf("generuje %d\n", x);
  54.         }
  55.         //close(bogdan[ZAPIS]);
  56.         while(1)
  57.         {
  58.             sleep(1);
  59.             read(bogdan2[ODCZYT], &x, sizeof(x));
  60.             //close(bogdan2[ODCZYT]);
  61.             printf("pierwsza %d\n", x);
  62.         }
  63.        
  64.     }
  65.     else
  66.     {
  67.         printf("dziecko szczescia\n");
  68.         while(1)
  69.         {
  70.             read(bogdan[ODCZYT], &x, sizeof(x));
  71.             //close(bogdan[ODCZYT]);
  72.             printf("znalazlem cos\n");
  73.             if(pierwsza(x) == 1)
  74.             {
  75.                 write(bogdan2[ZAPIS], &x, sizeof(x));
  76.                 //close(bogdan2[ZAPIS]);
  77.                 printf("znalazlem pierwsza\n");
  78.             }
  79.         }
  80.     }
  81.     return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement