#!/usr/bin/perl
use IPC::SysV qw(IPC_CREAT S_IRWXU ftok);
use IPC::Msg;

# Die folgenden Konstanten kennzeichnen die Message-Queue im System.
# RENDEZVOUS muss der Name einer _existierenden_ Datei sein!
# Nur die unteren 8 Bits von RVID sind wichtig und muessen !=0 sein!
# ftok(RENDEZVOUS, RVID) erzeugt einen immer identischen Schluessel,
# so lange die Datei RENDEZVOUS nicht neu angelegt wurde.

use constant RENDEZVOUS => "/etc";
use constant RVID       => 121;
use constant BUFLEN     => 256;

sub plmsg_waitrcv{
  my $msg = new IPC::Msg(ftok(RENDEZVOUS, RVID), 0);

  # Hole jede uebriggebliebene Nachricht aus der Message-Queue.
  # ACHTUNG: Dies wird beim letzten Aufruf blockieren, da keine
  #   Nachrichten mehr vorhanden sind.
  # Benutzer sollten das Programm mit CTRL-C beenden!
#while (1) {
  my ($prio, $buf);
    $prio = $msg->rcv($buf, BUFLEN, 0, 0);
    print "Found: ($buf, $prio)\n";
#}
}

plmsg_waitrcv();

#