- Perlについての質問箱 64箱目 [転載禁止]©2ch.net
729 :デフォルトの名無しさん[sage]:2015/12/08(火) 23:31:16.80 ID:MH5dvwqp - >>728
実行環境ぐらい書いてくれんか。 http://perldoc.jp/docs/perl/perlfaq5.pod#How32can32I32lock32a32file63 http://perldoc.jp/func/flock http://perldoc.jp/func/sleep #!/usr/bin/perl -w use strict; use Fcntl qw(:DEFAULT :flock); my $file = './count.txt'; $|++; sysopen my $fh, $file, O_RDWR|O_CREAT or die "can't open $file: $!"; flock $fh, LOCK_EX|LOCK_NB or die "can't flock $file: $!"; my $num = <$fh> || 0; seek $fh, 0, 0 or die "can't rewind $file: $!"; truncate $fh, 0 or die "can't truncate $file: $!"; print "count up $num -> ", $num + 1, ', wait...'; print $fh $num + 1 or die "can't write $file: $!"; sleep 10; close $fh or die "can't close $file: $!"; print "done.\n"; __END__ Win7だとこれで後から実行したプロセスは can't flock ./count.txt: ブロック不可のソケット操作をすぐに完了できませんでした。 at test.p line 7. とすぐにエラー吐いて終わる。
|
|