download original
  
#!/usr/bin/perl
use IPC::SysV qw(IPC_PRIVATE IPC_RMID IPC_CREAT S_IRWXU);
my $qid = msgget(IPC_PRIVATE, IPC_CREAT | S_IRWXU);
if (!defined($qid)) {
    die "msgget failed: $!\n";
}
if (fork() == 0) {
    my $rcvd;
    print "child: sleeping...\n";
    sleep 1;
    print "child: receiving...\n";
    if (msgrcv($qid, $rcvd, 60, 0, 0)) {
	($type_rcvd, $rcvd) = unpack("l a*", $rcvd);
	print "child: received: $rcvd\n";
	exit 0;
    } else {
	die "child: msgrcv failed\n";
    }
}
print "parent: sleeping...\n";
sleep 3;
print "parent: sending\n";
if (!msgsnd($qid, pack("l a*", 1234, "blahblubb!"), 0)) {
    die "msgsend failed.\n";
}
  
   back to ipc 
  
  (C) 1998-2017 Olaf Klischat  <olaf.klischat@gmail.com>