From d1866a98271b29c714d0816a439ce3531d680603 Mon Sep 17 00:00:00 2001 From: Eric Date: Fri, 6 Oct 2023 15:37:55 +0200 Subject: [PATCH] Uplaod Ejercicio 3 Pipe --- README.md | 6 ++++++ pipe.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 README.md create mode 100644 pipe.c 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