Last Update 2008/05/18
ファイルをロックする機能をエミュレートします。Windowsでも動作します。
戻り値1 = flock ファイルハンドル , 値1
戻り値1
ロックが成功すると真、失敗すると偽を返す
ファイルハンドル
ロックの対象となるファイルハンドル
値1
ロックの種類
1 : 共有ロック
2 : 排他的ロック
上記の2つはロック中のファイルにアクセスした場合は解除待ちとなる
これ以外にもすぐに結果を返すロックがある
2 : 排他的ロック
上記の2つはロック中のファイルにアクセスした場合は解除待ちとなる
これ以外にもすぐに結果を返すロックがある
(例)
# 読み書き両用モードでファイルをオープン
# 上書きモードの場合はこの時点でファイルサイズが0となる
open TEST_OUT, "+<test.txt";
flock TEST_OUT, 2;
# 上書き書き込みのためファイルロック後ファイルサイズを0とする
truncate(TEST_OUT, 0);
print "[ENTER]キーを押すと処理を中止します >";
$a = <STDIN>;
print TEST_OUT $a;
close TEST_OUT; # この時点でflockが解除される