![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| Programación de Alto Nivel Plantear preguntas acerca de C, C + +, Java, SQL, y otros lenguajes de programación aquí. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| pregunta acerca de grep, cortar y tuberías | dyrt | Programación de scripts de shell y | 1 | 02-28-2008 11:12 PM |
| De tuberías al antiguo a partir de un guión | mph | Programación de scripts de shell y | 2 | 10-11-2007 04:54 PM |
| De tuberías en UNIX | simo007 | UNIX for Dummies Preguntas y Respuestas | 3 | 05-23-2007 03:40 AM |
| de tuberías | lnatz | Programación de scripts de shell y | 1 | 07-14-2006 03:30 AM |
| Ayuda (LS tuberías, tr, corte) | exploración | Programación de scripts de shell y | 2 | 02-11-2006 08:40 AM |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
||||
|
Cuestión de tuberías
Tengo una pregunta tuberías, estoy tratando de aplicar las tuberías en mi concha y estoy teniendo algunos problemas ... esencialmente estoy tratando de hacer algo que ver comando | comando | comando. No puedo lograr que funcione bien si el último comando de la tubería no es ahorquillado, pero se ejecuta en el depósito y sale .. pero necesito a un tenedor. I tryed el siguiente, pero se cuelgan .. alguna sugerencia? Tengo la sensación de que tiene algo que ver con el cierre / apertura descriptores pero no sé ... gracias.: Código:
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);
}
}
}
Última edición por Yogesh Sawant; al 04-25-2008 04:33 AM.. Motivo: añadido etiquetas de código |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|