Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <time.h>
- #include <math.h>
- #define ODCZYT 0
- #define ZAPIS 1
- int pierwsza(int x)
- {
- int i=0;
- int pierwsza=1;
- int pierwiastek=(int)sqrt(x);
- if(x==1)
- return 0;
- for(i=2; i<=pierwiastek; i++)
- {
- if(x%i == 0)
- {
- pierwsza=0;
- break;
- }
- }
- return pierwsza;
- }
- int main()
- {
- int bogdan[2];
- int bogdan2[2];
- int i=0;
- int N=100000;
- int x;
- int numerek=666;
- srand(time(NULL));
- pipe(bogdan);
- pipe(bogdan2);
- for(i=0; i<5; i++)
- {
- if(numerek!=0)
- numerek=fork();
- }
- if(numerek!=0)
- {
- printf("macierzysty\n");
- for(i=0; i<5; i++)
- {
- x=rand()%N;
- write(bogdan[ZAPIS], &x, sizeof(x));
- printf("generuje %d\n", x);
- }
- //close(bogdan[ZAPIS]);
- while(1)
- {
- sleep(1);
- read(bogdan2[ODCZYT], &x, sizeof(x));
- //close(bogdan2[ODCZYT]);
- printf("pierwsza %d\n", x);
- }
- }
- else
- {
- printf("dziecko szczescia\n");
- while(1)
- {
- read(bogdan[ODCZYT], &x, sizeof(x));
- //close(bogdan[ODCZYT]);
- printf("znalazlem cos\n");
- if(pierwsza(x) == 1)
- {
- write(bogdan2[ZAPIS], &x, sizeof(x));
- //close(bogdan2[ZAPIS]);
- printf("znalazlem pierwsza\n");
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement