#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#define BUF 8192

int main()
{
  char puffer[BUF], inhalt[BUF],delete_fifo[BUF];
  int fd,fdx,n;
  sprintf(puffer,"fifo.%d\0",getpid());
  inhalt[0]='\0';
  /*Erste Zeile der Nachricht enthält die PID*/
  sprintf(inhalt,"%d\n",getpid());


  if(mkfifo(puffer, O_RDWR|0666) < 0)
   {
    fprintf(stderr,"Konnte keine FIFO erzeugen!!\n");
    exit(0);
   }
  fd=open("fifo1.1", O_WRONLY);
  fdx=open(puffer, O_RDWR);
  if(fd == -1 || fdx == -1)
   {
     perror("open : ");
     exit(0);
   }
  strcmp(delete_fifo, puffer);

  printf("Bitte geben sie Ihre Nachricht ein (Mit STRG+D beenden)\n");
  while(fgets(puffer,BUF,stdin) != NULL)
    strcat(inhalt,puffer);
  write(fd,inhalt,BUF);
  if(read(fdx,puffer,BUF))
   printf("%s\n",puffer);
  /*Antwort-FIFO wieder löschen*/
  unlink(delete_fifo);

  return 0;
}