![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Højtstående Programmering Post spørgsmål om C, C + +, Java, SQL, og andre programmerings sprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| spørgsmål om grep, opskåret, og rørene | dyrt | Shell Programmering og Scripting | 1 | 02-28-2008 11:12 PM |
| Rørsystemer til ex fra et script | mph | Shell Programmering og Scripting | 2 | 10-11-2007 04:54 PM |
| Rørsystemer i UNIX | simo007 | UNIX for dummyer Spørgsmål & svar | 3 | 05-23-2007 03:40 AM |
| rørsystem | lnatz | Shell Programmering og Scripting | 1 | 07-14-2006 03:30 AM |
| Hjælp (Rørsystemer ls, tr, cut) | scan | Shell Programmering og Scripting | 2 | 02-11-2006 08:40 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Rørsystemer Spørgsmål
Jeg har et rørsystem spørgsmål, jeg forsøger at gennemføre rørsystem på min egen skallen og jeg har nogle problemer ... esentially Jeg forsøger at gøre noget at gøre kommando | kommando | kommando.
Jeg kan få det til at virke fint, hvis den sidste pibe kommandoen ugrenede, men udfører i tanken og derefter udgange .. men jeg har brug for det til bord. Jeg tryed følgende, men det vil hænge .. nogen forslag? Jeg har en fornemmelse af det har noget at gøre med lukning / åbning deskriptorer men jeg ved ikke ... tak.: 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);
}
}
}
Sidst redigeret af Yogesh Sawant; 04-25-2008 på 04:33 AM.. Årsag: tilføjet kode tags |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|