Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2
ipcmsg4.pl
#!/usr/local/bin/perl -w
# ipcmsg4.pl -- Extrahiere die restlichen Elemente der Message-Queue,
# und zerstoere die Message-Queue anschliessend.
use IPC::SysV qw(ftok);
use IPC::Msg;
use constant RENDEZVOUS => "/etc/group";
use constant RVID => 121;
use constant BUFLEN => 256; # Max. Groesse des Puffers
# Wir installieren zunaechst einen Signalhandler, der durch CTRL-C
# aktiviert wird. Dieser Handler loescht die Message-Queue und
# beendet das Programm.
@SIG{'INT','QUIT','TERM','HUP'} = (\&handler) x 4;
print "Please enter CTRL-C to quit this program!\n";
# Stelle Verbindung zur Message-Queue her.
$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) {
$prio = $msg->rcv($buf, BUFLEN, 0, 0);
print "Found: ($buf, $prio)\n";
}
# Hander wird durch CTRL-C aufgerufen.
# Er unterbricht den letzten haengenden Systemaufruf msgrcv()/rcv()
# und zerstoert anschliessend die Message-Queue.
sub handler {
$msg->remove()
or warn "can't remove message queue: $!\n";
exit 0;
}
[Prev] [Up] [Relevant Chapter] [Next]
[Alte Quelle]
| Last modified: $Date: 2006/05/18 12:55:58 $ FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy |
|