![]() |
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| Di programmazione ad alto livello Pubblica domande su C, C + +, Java, SQL, e di altri linguaggi di programmazione qui. |
Più di UNIX e Linux Forum Argomenti potreste trovare utili
|
||||
| Filo | Thread Starter | Forum | Risposte | Ultimo Post |
| domanda su grep, taglio, e tubazioni | dyrt | Shell scripting e di programmazione | 1 | 02-28-2008 11:12 PM |
| Tubazioni ex da uno script | mph | Shell scripting e di programmazione | 2 | 10-11-2007 03:54 PM |
| Tubazioni in UNIX | simo007 | UNIX for Dummies Domande & Risposte | 3 | 05-23-2007 02:40 AM |
| tubatura | lnatz | Shell scripting e di programmazione | 1 | 07-14-2006 02:30 AM |
| Guida (Piping ls, tr, taglio) | scansione | Shell scripting e di programmazione | 2 | 02-11-2006 08:40 AM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
Tubazioni Domanda
Ho una domanda di tubazioni, sto cercando di attuare tubazioni sul mio guscio e di aver avuto alcuni problemi sono esentially ... sto cercando di fare qualcosa a che fare comando | comando | comando.
Sono in grado di farlo funzionare bene se l'ultimo tubo di comando non è forcuto, ma esegue nel serbatoio e poi esce .. ma ho bisogno di forchetta. I tryed seguenti, ma si appendono .. qualche suggerimento? Ho la sensazione che ha qualcosa a che fare con la chiusura / apertura di descrittori, ma non so ... grazie.: Codice:
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);
}
}
}
Ultimo a cura di Yogesh Sawant; al 04/25/2008 03:33 AM.. Motivo: aggiunto codice tag |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|