elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Dudas con Pipes en: 23 Diciembre 2012, 11:22 am
Hola, tengo grandes dudas con la comunicacion por pipes, los dup, etc...en definitiva que no tengo muy claro cuando se ejecuta el padre o cuando el hijo, etc...

En la uni nos han puesto este codigo y la verdad es que me despista bastante, sobre todo los cierres de los canales, que no logro cogerlo claramente:

#include <stdio.h>
#include <signal.h>
#include <unistd.h>
int n, seguir;
void rut1() {printf(“Señal 1\n”); seguir=0;
signal (SIGUSR1, rut1);}
void rut2() {printf(“Señal 2\n”); seguir=1; n++;
signal (SIGUSR2, rut2);}
void main()
{
int p1[2],i;
seguir = 1;
n = 0;
pipe(p1);
signal (SIGUSR1, rut1);
signal (SIGUSR2, rut2);
switch(fork()) {
case 0: close(1);
dup(p1[1]);
close(p1[0]); close (p1[1]);
while(seguir);
pause();
write(1, &n, sizeof(int));
break;
default: close(0);
dup(p1[0]);
close(p1[0]); close (p1[1]);
read(0, &i, sizeof(int));
printf(“He recibido un %d”, i);
while(seguir);
}
printf(“El valor de n es %d”, n);
}

Toda ayuda sera bien recibida  ;)

Muchas gracias.

Fran
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines