#include <stdio.h>
#include <sys/types.h>
#include <sys/msg.h>
#include <sys/ipc.h>
#include <unistd.h>
#include "keyid.h"

/*Unser Nachricht mit dem Typ*/
struct amsgbuf {
long mtype;
char mtext[80];
} mq_test_buf;


int main()
{
  int kennungs_id;
  int i,n;

  printf("key=%d\n", KEY);

/*Wir erstellen ein neue Message Queue*/
  kennungs_id = msgget(KEY, IPC_CREAT | 0666);
  printf("Message Queue id=%d\n", kennungs_id);
  if (kennungs_id == -1)
    {
      fprintf(stderr,"Fehler beim erstellen einer Message Queue!!\n");
      exit(0);
    }
/*Wir versuchen eine Nachricht aus der Message Queue zu lesen mit dem Message-Typ 123*/
  while(msgrcv(kennungs_id, (struct msgbuf *)&mq_test_buf, 80, 123, 0))
    {
       printf("Habe Message-Typ 123 emfangen mit folgendem Inhalt : %s\n", mq_test_buf.mtext);
       mq_test_buf.mtext[0]=0;
    }
/*Wir löschen die Message Queue*/
  msgctl(kennungs_id, IPC_RMID, 0);
}