commit d1866a98271b29c714d0816a439ce3531d680603 Author: Eric Date: Fri Oct 6 15:37:55 2023 +0200 Uplaod Ejercicio 3 Pipe diff --git a/README.md b/README.md new file mode 100644 index 0000000..c5cbacd --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# Ejercicio 3 Pipe + +~~~texto +El padre envía el mensaje al hijo ... + El hijo recibe algo del pipe: Buenos días hijo. +~~~ diff --git a/pipe.c b/pipe.c new file mode 100644 index 0000000..be08daa --- /dev/null +++ b/pipe.c @@ -0,0 +1,33 @@ +#include +#include +#include +#include +#include +#include + +void main(void) { + char saludoPadre[]="Buenos días hijo.\n"; + char buffer[30]; + + int fd[2]; // 0 lectura y 1 escritura + pipe (fd); // creamos el pipe + + pid_t pid; + pid = fork(); // se crea el proceso hijo + switch(pid) { + case -1: // error printf("Algo falló ..."); + exit(-1); + break; + case 0: // soy el hijo + close(fd[1]); // cierra el descriptor de escritura = entrada + read(fd[0], buffer, sizeof(buffer)); + printf("\tEl hijo recibe algo del pipe: %s\n",buffer); + break; + default: // padre envía + close(fd[0]); + write(fd[1],saludoPadre, strlen(saludoPadre)); //escribo en pipe + printf("El padre envía el mensaje al hijo ...\n"); + wait(NULL); + break; + } +} \ No newline at end of file