PerlのflockはPHPのflockをブロックするか?

Posted by
ぴろり
Posted at
2006/04/15 01:51
Trackbacks
関連記事 (0)
Post Comment
コメントできます
Category
開発メモ カテゴリ
 またはその逆のケース。 それぞれ で書かれたプログラムがあって、その両者が同じファイルに読み書きする処理を考えます。 ここで flock 命令でファイルを排他ロックをした場合、 から同じファイルへの読書きは flock でブロックされるのか?という疑問。
この記事をはてなブックマークに追加する この記事のはてなブックマーク数 | この記事をlivedoorクリップに追加する この記事のlivedoorクリップ数 | この記事をYahooブックマークに追加する この記事のYahoo!ブックマーク数 | この記事をdel.icio.usに追加する
 以下のようなコードを で書いてしてみました。 論より証拠、まずは動かして試してみます。
 結論から言うと、した環境では期待通りの動作になりました。 flock 命令で排他ロックしたファイルは、 ロックが開放されるまで flock 命令でブロックされます。 また逆のケースでも同じです。

 sleep 命令で flock によるロック状態を暫く保持できるようにしてあります。 それぞれのプログラムを少し時間差を付けてから呼び出し、 test.txt の内容をチェックします。 に使用した環境は以下の通りです。
  • GNU/ 2.4.27, perl 5.8.4, php 4.3.10, 1.3.33
  • FreeBSD 4.10, perl 5.8.4, php 4.4.2, 1.3.34
 加えて以下のも参考に。  最終的にはどちらも同じシステムコールに行き着くわけですから、表面的な言語の違いというのは問題では無いということですね。 そして言語は違えど正しくロックを行わないと効果はありませんよ、と。

お付き合いくださったマイミク三矢田さん、TOMMY山さん、ありがとうございました


この記事を読んだ人はこんな記事も読んでいます ?

その他の関連する記事


関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

コメントを投稿する

 (必須/公開)
 (必須/非公開)
 
 (必須)
コメントスパム防止のため投稿前に ランダムな数字 ? を入力してから投稿してください。お手数ですがご協力のほど宜しくお願いいたします。