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

int main()
{
  pid_t pid;
  int retval, fd[2], n;

  retval = pipe(fd);
  if (retval < 0) {
    printf("Pipe failed\n"); /* unlikely */
    exit(0);
  }

  pid = fork();
  if (pid == 0) { /* child */
    close(fd[0]);
    n = write (fd[1],
             "Hello from the child",20);
    exit(0);
  }
  else if (pid > 0) { /* parent */
    char buffer[64];
    close(fd[1]);
    n = read(fd[0],buffer,64);
    buffer[n]='\0';
    printf("I got your message: %s\n",buffer);
  }
  return 0;
}

