diff --git a/Pipe/pipe b/Pipe/pipe new file mode 100755 index 0000000..1efa399 Binary files /dev/null and b/Pipe/pipe differ diff --git a/Pipe/pipe.c b/Pipe/pipe.c new file mode 100644 index 0000000..d4f51ec --- /dev/null +++ b/Pipe/pipe.c @@ -0,0 +1,28 @@ +#include +#include +#include +#include +#include +#include +#include +void main(void) { + char saludo[] = "Saludos peña!!!\n"; + char buffer[10]; + int fd, bytesleidos; + fd = open("texto.txt",1); // abrimos para escritura + if (fd==-1) { + printf("Algo salió mal\n"); + exit (-1); + } + printf("Escribo el saludo en el fichero..."); + write(fd,saludo, strlen(saludo)); + close(fd); + fd=open("texto.txt",0); // abrimos para lectura + printf("Contenido del Fichero: \n"); + bytesleidos = read(fd,buffer,1); + while (bytesleidos!=0) { + printf("%s", buffer); + bytesleidos = read(fd,buffer,1); + } + close (fd); +} \ No newline at end of file diff --git a/Pipe/pipe2 b/Pipe/pipe2 new file mode 100755 index 0000000..f782e9b Binary files /dev/null and b/Pipe/pipe2 differ diff --git a/Pipe/pipe2.c b/Pipe/pipe2.c new file mode 100644 index 0000000..de25fea --- /dev/null +++ b/Pipe/pipe2.c @@ -0,0 +1,29 @@ +#include +#include +#include +#include +#include +void main(void) { + int fd[2]; // 0 lectura y 1 escritura + char buffer[30]; + pid_t pid; + + pipe (fd); // creamos el pipe + pid = fork(); // se crea el proceso hijo + switch(pid) { + case -1: // error + printf("Algo falló ..."); + exit(-1); + break; + case 0: // soy el hijo + printf("El hijo escribe en el pipe ...\n"); + write(fd[1], "Hola papi",10); + break; + default: // soy papi + wait(NULL); //espero a fin del hijo + printf("El papi lee del pipe ...\n"); + read(fd[0], buffer, 10); + printf("\tMensaje recibido: %s\n", buffer); + break; + } +} \ No newline at end of file diff --git a/Pipe/texto.txt b/Pipe/texto.txt new file mode 100644 index 0000000..75c5c37 --- /dev/null +++ b/Pipe/texto.txt @@ -0,0 +1 @@ +Saludos peña!!!