Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2964 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Implémentations de plusieurs pipes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Implémentations de plusieurs pipes

n°2279603
simon91
Posté le 16-04-2016 à 22:09:08  profilanswer
 

Bonjour,
 
Je rencontre un problème, j'ai implémenté un shell simple qui tourne avec les pipes mais seulement pour deux commandes. J'aimerais le modifier afin qu'il réussisse à tourner avec plusieurs pipes enchainés comme "echo test | cat | cat | cat | wc" par exemple mais je manque énormément d'inspiration et je bloque depuis.
Voici le bout de mon code de la partie concernée:

Code :
  1. if (pid == 0) // in the child process  
  2.    for (i = 0; i < cpt; i++)  // for each cmd
  3.    {
  4.      if (mot[i][0] == '|')
  5.      {
  6.        j = i;
  7.      }
  8.    }
  9.    if (j > 0)
  10.    {
  11.      if (pipe(p))
  12.      {
  13.        fprintf(stderr, "pipe" );
  14.        exit(1);
  15.      }
  16.      mot[j] = NULL;
  17.      if (fork() == 0)  //enfant
  18.      {
  19.         j = -1;
  20.         close(p[0]);
  21.         dup2(p[1],1);
  22.         close(p[1]);
  23.      }
  24.      close(p[1]);  //parent
  25.      dup2(p[0], 0);
  26.      close(p[0]);                             
  27.    }
  28.    for (i = 0; dirs[i] != 0; i++)
  29.    {
  30.      snprintf(pathname, sizeof(pathname), "%s/%s", dirs[i], mot[j+1]);
  31.      execv(pathname, &mot[j+1]);
  32.    }
  33. }
  34. else
  35.    while (wait(0) != pid) // parent: wait child
  36. }


 
 
Merci d'avance pour l'aide !

mood
Publicité
Posté le 16-04-2016 à 22:09:08  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Implémentations de plusieurs pipes

 

Sujets relatifs
somme de plusieurs cellules selon si vides ou pasInfinite Scroll sur plusieurs DIV
Importer des données de plusieurs fichiers, sous conditionFormulaire avec plusieurs submit / Safari
aide pour la decopmposition d'une image en plusieurs matrices?Harmoniser les dates de séries temporelles de plusieurs pays
Comment mettre à jour plusieurs branches ?Additionner la valeur numérique de plusieurs TextBox
passer les noms de fichiers contenant une ou plusieurs espace(s) ?interroger plusieurs tables en une seule requete
Plus de sujets relatifs à : Implémentations de plusieurs pipes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR