Xkein

Untitled

Oct 26th, 2021
944
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  
  3. *
  4.  
  5. *1 père ayant 10 processus fils communiquent par tube
  6.  
  7. *le père envoie à chaque fils les bornes d'1 sous intervalle
  8.  
  9. *Chaque processus recherche les nombres premiers dans le sens intervalle et les affiche
  10.  
  11. *
  12.  
  13. */
  14.  
  15. #include <stdio.h>
  16.  
  17. #include <unistd.h>
  18.  
  19. #include <stdlib.h>
  20.  
  21.  
  22.  
  23.  
  24. int estPremier(int nbr)
  25. {
  26.     for(int i = 2; i < nbr - 1; i++)
  27.     {
  28.         if(nbr%i == 0)
  29.         {
  30.            return 0;
  31.         }
  32.     }
  33.     return 1;
  34. }
  35.  
  36. int premier(int nbr)
  37.  
  38. {    
  39.     nbr = nbr + 1;
  40.     while(estPremier(nbr) == 0)
  41.     {
  42.         nbr = nbr + 1;
  43.     }
  44.     printf("Le nombre premier est: %d", nbr);
  45.     return nbr;  
  46.  
  47.  
  48.  
  49. }
  50.  
  51.  
  52.  
  53. int main(){
  54.  
  55.     int pip[2];
  56.  
  57.     int T[2];
  58.  
  59.     int pid;
  60.  
  61.     int i;
  62.  
  63.  
  64.  
  65.     if(pipe(T) == -1)
  66.  
  67.     {
  68.  
  69.         perror("erreur de pipe \n");
  70.  
  71.         exit(1);
  72.  
  73.     }
  74.  
  75.     pid = fork();
  76.  
  77.     if(pid == 0)
  78.  
  79.     {
  80.         int nbPremier = 1;
  81.  
  82.         for (int i = 0; i < 10; i++)
  83.  
  84.         {
  85.  
  86.             close(T[0]);
  87.             nbPremier = premier(nbPremier);
  88.  
  89.             printf("Processus: %d", pid);
  90.  
  91.             printf("Je suis le fils %d \n", i);
  92.  
  93.             premier(16);
  94.  
  95.             close(T[1]);
  96.  
  97.         }
  98.  
  99.         exit(0);
  100.  
  101.     }
  102.  
  103.     else
  104.  
  105.     {
  106.  
  107.             close(T[1]);
  108.  
  109.             printf("Processus: %d ", pid);
  110.  
  111.             printf("Je suis le pere \n");
  112.  
  113.             close(T[0]);
  114.  
  115.            
  116.  
  117.     }
  118.  
  119.     exit(0);
  120.  
  121. }
  122.  
  123.  
RAW Paste Data