![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| 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 |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
||||
|
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 |
| Modes d'affichage | Rate this thread |
|
|