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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  suite de tubes ou pipes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

suite de tubes ou pipes

n°558717
theorie du​ chaos
morte et enterrée
Posté le 04-11-2003 à 15:31:06  profilanswer
 

je dois realiser un mini shell qui gere plusieurs pipes
 
mais je sais pas comment ca marche :D
y a-t-il une mecanisme de synchro ou tous les pipes "agissent-ils" en meme temps?

mood
Publicité
Posté le 04-11-2003 à 15:31:06  profilanswer
 

n°558794
Moktar1er
No one replies...
Posté le 04-11-2003 à 16:34:49  profilanswer
 

bah nan tu as un phénomène de priorité comme avec n'importe quel opérateur... quand tu fais 2*4*6*8 tu ne fait pas le calcul simultanément... avec les pipes c'est pareil

n°559448
skwee
Posté le 05-11-2003 à 11:23:02  profilanswer
 

le pipe  |  se sert la commande en amont comme son entrée standart.
autrement dit dans : ls | grep toto | more
le shell va executrer le ls auquel il va faire un grep toto et sur le resultat du grep va faire son more.
 

n°560710
theorie du​ chaos
morte et enterrée
Posté le 06-11-2003 à 11:08:19  profilanswer
 

je dois programmer ca en c...
 
le pipe fait des lancements concurrents
je peux pas attendre que l execution d une commande soit finie pour en executer une autre, c bien ca?

n°560723
Moktar1er
No one replies...
Posté le 06-11-2003 à 11:15:54  profilanswer
 

synchro synchronization :D
 
"le pipe fait des lancements concurrents" :??: tu entends quoi par là?
Tu fais un fork() à chaque fois et tu ouvres un pipe entre ton processus père et le fils. Il y a des moyens de se synchroniser justement que tu fais de la programmation concurrente.
Je me rappelle quand j'étais petit on avait codé un shell (TP); on s'était marrés à faire des tableaux de pipes etc.

n°561204
theorie du​ chaos
morte et enterrée
Posté le 06-11-2003 à 19:55:28  profilanswer
 

tu l aurais pas sur toi? :D

n°561272
-keiji-
Grrrrr ....
Posté le 06-11-2003 à 21:56:18  profilanswer
 

Un petit exemple d'utilisation des pipes en C sous linux si ça peux t'aider à comprendre le principe  
 

Code :
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <sys/types.h>
  4. #ifndef HAVE_NOT_UNISTD_H
  5. # include <unistd.h>
  6. #endif
  7. #ifdef HAVE_NOT_PID_T
  8. typedef int     pid_t;
  9. #endif
  10. int     main(int argc, char **argv)
  11. {
  12.   int   p[2];
  13.   pid_t pid;
  14.   if (pipe(p) < 0)
  15.     fprintf(stderr, "pipe" );
  16.   if ((pid = fork()) < 0)
  17.     fprintf(stderr, "fork" );
  18.   if (!pid)
  19.     {
  20.       close(p[0]);
  21.       dup2(p[1], 1);
  22.       execlp("ls", "ls", "-l", "/dev", 0);
  23.       fprintf(stderr, "execl" );
  24.     }
  25.   else
  26.     {
  27.       close(p[1]);
  28.       dup2(p[0], 0);
  29.       execlp("more", "more", 0);
  30.       fprintf(stderr, "execl" );
  31.     }
  32.   return 0;
  33. }


 
A+

n°561817
theorie du​ chaos
morte et enterrée
Posté le 07-11-2003 à 15:37:17  profilanswer
 

avec un ca va :/
c est avec plus que ca pose probleme :(


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  suite de tubes ou pipes

 

Sujets relatifs
[SQL - résolu] requete d'une suite de chiffre.[VB6]Créer une frame à part, et la charger dans la Form par la suite
[EXCEL] Exécuter une macro suite à une saisieecire a la suite d un fichier texte pourquoi mon exemple ne marche pas
PHP ET REDIRECTION (suite)[HTML/JS] espace entre des images à la suite
Test des variables suite et fin[ACCESS]Probleme activex suite a un changement de poste
printf en remplaçant le car, plutôt quue décrire à la suite[C] Comment saisir une suite de chaînes de caractères...?
Plus de sujets relatifs à : suite de tubes ou pipes


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