#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main()
{
  int fd_fifo; /*handle for FIFO*/

  char puffer[]="This text is for the fifo\n";
  char buf[100];

  unlink("/tmp/fifo0001.1");
/*We create a FIFO*/

  if((mkfifo("/tmp/fifo0001.1", O_RDWR)) == -1)
    {
      fprintf(stderr, "Can't creat a fifo.........\n");
      exit(0);
    }
/*We open the fifo for read and write*/
  if((fd_fifo=open("/tmp/fifo0001.1", O_RDWR)) == - 1)
    {
      fprintf(stderr, "Can't open the fifo.....\n");
      exit(0);
    }

  write(fd_fifo,puffer,strlen(puffer)) ;
  if(read(fd_fifo, &buf, sizeof(buf)) == -1)
     fprintf(stderr, "Error! can't read from FIFO.......\n");
  else
     printf("read now from FIFO : %s\n",buf);

  return 0;
}