Advertisement
Guest User

Ex4 Solution avec kill()

a guest
Oct 22nd, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.75 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <sys/wait.h>
  5.  
  6. #define MAXFILS 3
  7.  
  8. int main(int argc, char* argv[]){
  9.     if(argc < 3){
  10.         printf("Syntaxe : ./ex3 chaîne <liste_fichiers>\n");
  11.         return 0;
  12.     }
  13.    
  14.     int i;
  15.     pid_t processes[MAXFILS];
  16.     for (i=0; i<MAXFILS ; i++) processes = 0; //INITIALISATION
  17.  
  18.     int avancement = 2;
  19.  
  20.     while (avancement < argc) {
  21.         for (i = 0; i<MAXFILS && avancement < argc; i++) {
  22.             if (processes[i] == 0 || !kill(processes[i], 0) { //PROCESSUS INACTIF
  23.                 pid_t pid = fork();
  24.                     if(pid == 0){
  25.                             execl("/bin/grep", "grep", argv[1], argv[i], NULL);
  26.                     exit(1);
  27.                     }
  28.                 else{
  29.                     processes[i] = pid;
  30.                     avancement++;
  31.                 }
  32.             }
  33.         }
  34.     }
  35.     return 0;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement