私が次のことをすると、ロックファイルが表示されません(flock()がそれを使用している場合)?私のファイルロックで何が問題になっていますか?
問題は、同じスクリプトを複数回実行でき、ファイルをファイルしないということです。
Fnctl
パッケージをインストールする必要がありますか?
私は間違っていますか?
#!/usr/bin/perl
use warnings;
use strict;
use Fcntl ':flock'; # Import LOCK_* constants
my $file = 't';
my $can_lockin = 1;
open(my $fh, '>', $file) or die "Could not open '$file' - $!";
flock($fh, LOCK_EX) or die "Could not lock '$file' - $!";
print $fh $can_lockin;
sleep 100000000;
#close($fh) or die "Could not write '$file' - $!";
恐ろしい!それは非常に良いユースケースです。あなたは私がそれを何のために使うのか推測できますか? =) –
'$ | ++;'はあなたが使っていないSTDOUTにのみ影響します。 – ikegami
右 - 私はそれをよりよく説明していたはずです。 $ | ++は群れのものとは関係ありません。しかし、この例では、「ブロッキング」を印刷してから10秒待ってもらいたいと思っていました。その間に2番目のウィンドウでもう一度実行すると、最初の実行が終了してロックが解除されるまで、2番目の「ブロック中」が表示されません。しかし、バッファリングがオンの場合、最初の実行が終了するまで、最初の "ブロック"メッセージは表示されません。 – scorpio17