Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2
parallel-file.pl
#!/usr/local/bin/perl -w
# parallel-file.pl -- Konkurrierender Zugriff auf eine Datei
use Fcntl; # Wg. der O_*-Konstanten
use Time::HiRes qw(sleep); # CPAN: Mikrosekunden warten
unlink("/tmp/pfile");
sysopen(MYHANDLE, "/tmp/pfile", O_WRONLY | O_CREAT, 0666)
or die "can't open file: $!\n";
$SIG{'INT'} = sub { close(MYHANDLE); die "$$ quitting...\n"; };
if (($nval = fork()) == -1) {
die "can't fork(): $!\n";
} elsif ($nval) {
# Elternprozess
while (1) {
foreach my $char ('A' .. 'Z', "\n") {
syswrite(MYHANDLE, $char, 1);
sleep(rand(0.1));
}
}
} else {
# Kindprozess
while (1) {
foreach my $char ('a' .. 'z', "\n") {
syswrite(MYHANDLE, $char, 1);
sleep(rand(0.1));
}
}
}
[Prev] [Up] [Relevant Chapter] [Next]
[Alte Quelle]
| Last modified: $Date: 2006/05/18 12:56:02 $ FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy |
|