Ok. Gracias por la ayuda ^^
Ya he empezado a hacerlo con pipe(), a ver si poco a poco va saliendo el código bien...
Código C:
Ver original#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <signal.h>
pid_t pidHijo1();
pid_t pidHijo2();
int tuberia[2];
void procesoHijo1()
{
char buffer[255];
close(tuberia[0]);
close(0);
dup (tuberia[0]);
for (;;)
{
while (getc(stdin
) != '\n'); }
}
void procesoHijo2()
{
char buffer[255];
close(tuberia[1]);
close(0);
dup (tuberia[0]);
for (;;)
{
while (getc(stdin
) != '\n'); }
}
void procesoPadre()
{
char buffer[255];
close(tuberia[1]);
close(0);
dup (tuberia[0]);
for (;;)
{
while (getc(stdin
) != '\n'); }
kill(pidHijo1, SIGTERM);
kill(pidHijo2, SIGTERM);
}
int main()
{
pipe(tuberia);
pidHijo1 = fork();
pidHijo2 = fork();
if (pidHijo1 < 0)
{
fprint(stderr, "Error en fork()\n");
}
if (pidHijo1 == 0)
{
procesoHijo1();
}
else
{
procesoPadre();
}
}
Esta es otra aproximación... XD