The UNIX and Linux Forums  

Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de Alto Nivel
.
google unix.com



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

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 06-16-2009
p00ndawg p00ndawg is offline
Usuario Registrado
  
 

Fecha: junio 2009
Puestos: 8
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
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 12:27 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0