#include <stdio.h>
#include <unistd.h>
#include <string.h>

void main(){
  int pipePversF[2];
  int pipeFversP[2];
  pipe(pipePversF);
  pipe(pipeFversP);
  switch(fork()){
    case 0:
      close(pipePversF[1]);
      close(pipeFversP[0]);

      char buf2[20];
      read(pipePversF[0], buf2, sizeof(buf2));
      printf("Je suis le fils et j'ai reçu le message : %s\n", buf2);

      char s2[30];
      fgets(s2, 30, stdin);
      write(pipeFversP[1], s2, strlen(s2));

      break;
    default:
      close(pipePversF[0]);
      close(pipeFversP[1]);

      char s[30];
      fgets(s, 30, stdin);
      write(pipePversF[1], s, strlen(s));

      char buf[20];
      read(pipeFversP[0], buf, sizeof(buf));
      printf("Je suis le pere et j'ai reçu le message : %s\n", buf);
  }
}
