![]() |
|
|
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 |
| URGENTE::: ¿Puede alguien me ayude en la creación de la cola de mensajes de solicitud? | arunchaudhary19 | Programación de Alto Nivel | 9 | 11-20-2007 07:15 AM |
| proceso de creación de 10 | kpkant123 | Programación de scripts de shell y | 2 | 05-21-2007 06:28 PM |
| creando proceso hijo | Confundir | Programación de Alto Nivel | 12 | 05-27-2005 12:48 PM |
| Redirección de tuberías o mensaje de error | marinero | Programación de scripts de shell y | 2 | 05-10-2005 04:04 PM |
| ¿Cómo saber de un nuevo archivo se encuentra en proceso de creación? No ha sido cerrado. | linkjack | Programación de Alto Nivel | 2 | 02-11-2003 01:55 PM |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
||||
|
3 Creación de proceso y de tuberías de un mensaje
im siento muy nuevo, pero supone que tengo que crear 3 procesos A, B y C y tienen un vínculo directo de A a B, B a C, y c para a. aquí está mi código. No trabajo, no obstante si nos fijamos en lo que yo negrita mientras mi lectura final es p [0] que parece que siempre funciona, independientemente de la sección en negrita. ¿alguien puede explicar esto? Código:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
#define MSGSIZE 14
char *message = "hello, world!";
main() {
char inbuf[MSGSIZE];
int p[3];
pid_t pid;
pid_t pid1;
if (pipe(p) == -1){
perror("pipe call");
exit(1);
}
pid = fork();
pid1 = fork();
if(pid == -1){
perror("Fork failed");
exit(1);
}
if(pid | pid1 == 0)//process A
{
close(p[0]);
write(p[1], message, MSGSIZE);
read(p[1], message, MSGSIZE);
write(p[2], message, MSGSIZE);
}
/*else if(pid1 == 0){
close(p[1]);
//read(p[1], message, MSGSIZE);
write(p[2], message, MSGSIZE);
}*/
else{
//parent process C
close(p[2]);
read(p[0], inbuf, MSGSIZE);
printf("Pipelined message return:%s\n", inbuf);
wait(NULL);
}
exit(0);
}
Última edición por vino; al 06-17-2009 01:52 AM.. |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|