Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- *
- *1 père ayant 10 processus fils communiquent par tube
- *le père envoie à chaque fils les bornes d'1 sous intervalle
- *Chaque processus recherche les nombres premiers dans le sens intervalle et les affiche
- *
- */
- #include <stdio.h>
- #include <unistd.h>
- #include <stdlib.h>
- int estPremier(int nbr)
- {
- for(int i = 2; i < nbr - 1; i++)
- {
- if(nbr%i == 0)
- {
- return 0;
- }
- }
- return 1;
- }
- int premier(int nbr)
- {
- nbr = nbr + 1;
- while(estPremier(nbr) == 0)
- {
- nbr = nbr + 1;
- }
- printf("Le nombre premier est: %d", nbr);
- return nbr;
- }
- int main(){
- int pip[2];
- int T[2];
- int pid;
- int i;
- if(pipe(T) == -1)
- {
- perror("erreur de pipe \n");
- exit(1);
- }
- pid = fork();
- if(pid == 0)
- {
- int nbPremier = 1;
- for (int i = 0; i < 10; i++)
- {
- close(T[0]);
- nbPremier = premier(nbPremier);
- printf("Processus: %d", pid);
- printf("Je suis le fils %d \n", i);
- premier(16);
- close(T[1]);
- }
- exit(0);
- }
- else
- {
- close(T[1]);
- printf("Processus: %d ", pid);
- printf("Je suis le pere \n");
- close(T[0]);
- }
- exit(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement