The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > High Level Programming
.
google unix.com



High Level Programming Posez vos questions à propos de C, C + +, Java, SQL, et d'autres langages de programmation ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
question à propos de grep, cut, et de la tuyauterie dyrt De programmation et de script Shell 1 02-28-2008 11:12 PM
Piping ex à partir d'un script mph De programmation et de script Shell 2 10-11-2007 04:54 PM
Tuyauterie sous UNIX simo007 UNIX pour les nuls Questions et réponses 3 05-23-2007 03:40 AM
tuyauterie lnatz De programmation et de script Shell 1 07-14-2006 03:30 AM
Aide (Piping ls, tr, cut) scan De programmation et de script Shell 2 02-11-2006 08:40 AM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 04-25-2008
mtobin1987 mtobin1987 is offline
Registered User
  
 

Date d'inscription: avril 2008
Messages: 2
Question de tuyauterie

J'ai une question de tuyauterie, je suis en train de mettre en œuvre la tuyauterie de ma propre coquille et j'ai du mal à esentially ... Je tente de faire quelque chose à faire de commande | commande | commande.
Je peux lui faire fonctionner correctement si le dernier tube de commande n'est pas fourchue, mais exécute dans le shell, et des sorties .. mais j'ai besoin d'elle à la table. I tryed le suivant, mais il se bloque tout .. suggestions? J'ai le sentiment qu'il a quelque chose à voir avec la fermeture / ouverture des descripteurs, mais je ne sais pas ... merci.:
Code:
int pipe1[2], pipe2[2];

        pipe(pipe1);//create first pipe
		pid_t PID=fork();
        if(PID==0){
                close(1);
                dup(pipe1[1]);
                close(pipe1[0]);
                close(pipe1[1]);
               	execvp(*argv,argv);
                printf("operation failed");

        } else {
                
                pipe(pipe2);
				pid_t PID2=fork();
                if (PID2==0) {
                        close(0);
                        dup(pipe1[0]);
                        close(1);
                        dup(pipe2[1]);
                        close(pipe1[0]);
                        close(pipe1[1]);
                        close(pipe2[0]);
                        close(pipe2[1]);
                        execvp(*argv2, argv2);
                } else {
                		pid_t PID3=fork();
   				waitpid(PID3,&status,0);<-----Not sure about this
                		if(PID3==0){
                        close(0);
                        dup(pipe2[0]);
                        close(pipe1[0]);
                        close(pipe1[1]);
                        close(pipe2[0]);
                        close(pipe2[1]);
                        execvp(*argv3, argv3);
                		}
                		
                	}
      	  }

Dernière édition par Yogesh Sawant; au 04.25.2008 04:33 AM.. Motif: Ajout de balises de code
 

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 10:32 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0