![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Hoog Niveau Programmering Post vragen over C, C + +, Java, SQL, en andere programmeertalen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| vraag over grep, knippen, en leidingsystemen | dyrt | Programmeren en Shell Scripting | 1 | 02-28-2008 11:12 PM |
| Pijpleidingstelsels ex van een script | mph | Programmeren en Shell Scripting | 2 | 10-11-2007 04:54 PM |
| Leidingen in UNIX | simo007 | UNIX voor Dummies Questions & Answers | 3 | 05-23-2007 03:40 |
| leidingen | lnatz | Programmeren en Shell Scripting | 1 | 07-14-2006 03:30 |
| Help (Pijpleidingstelsels ls, tr, knippen) | scan | Programmeren en Shell Scripting | 2 | 02-11-2006 08:40 |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
||||
|
Pijpleidingstelsels Vraag
Ik heb een vraag leidingen, ik probeer uit te voeren leidingen op mijn eigen reservoir en ik hebben wat problemen ... esentially ik probeer om iets te doen commando | commando | commando.
Ik kan het goed te werken als de laatste pipe commando is niet gevorkt, maar voert in het reservoir en vervolgens uitgangen .. maar ik moet het aan de vork. Ik tryed de volgende, maar het zal hangen .. suggesties? Ik heb een gevoel dat hij iets te maken heeft met sluiting / opening van descriptoren, maar ik weet niet ... bedankt.: 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);
}
}
}
Laatst gewijzigd door Yogesh Sawant; op 04.25.2008 04:33.. Reden: code tags toegevoegd |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|