Yo tengo 2 valores enteros que quiero enviárselos del proceso padre al hijo mediante una pipe.
Cuando envío los valores los meto en el vector enviar[2] y cuando los recibo los guardo en recibir[2].
Pero al recibirlo y mostrarlo me muestra unos caracteres raros.
Código
#include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <signal.h> #include <stdlib.h> int pidh; int i,j; int B[2][2]; int pipe1[2]; int enviar[2]; int recibir[2]; int salirhijo=0; int salirpadre=0; void leer(){ for(i=0;i<2;i++){ read(pipe1[0],&recibir[i],sizeof(int)); } //recibo los datos en el vector de 2 posiciones recibir[2]. } int main(){ pipe(pipe1); pidh=fork(); if(pidh == 0){ //hijo signal(SIGUSR1,leer); while(salirhijo == 0){ sleep(1); } }else{ //padre sleep(1); for (i=0;i<3;i++){ for (j=0;j<3;j++){ sleep(1); } } //le voy a enviar 2 elementos al hijo por la pipe, para ello antes los meto en el vector enviar que es de 2 posiciones. enviar[0] = B[0][0]; enviar[1] = B[2][1]; for(i=0;i<2;i++){ write(pipe1[1],&enviar[i],sizeof(int)); kill(pidh,SIGUSR1); sleep(1); } } }
Saludos y gracias!!