[PHP-users 14386]Re: requireとflockについて
SATOH Fumiyasu
fumiya @ samba.gr.jp
2003年 3月 31日 (月) 12:13:08 JST
At Mon, 31 Mar 2003 08:59:02 +0900 (JST),
いちろう たこす wrote:
> 画面共通で頻繁に呼び出すcommon.incファイルをrequireで呼
> び出して使っている場合に、common.inc自体をflockを使って
> 下記のように修正した場合、例えば書き込んでる最中にrequir
> eされたりしたらどうなるんでしょうか?
ほかに何も細工していないのであれば、flock() はただのアドバイザリ
ロック (advisory lock) なので、書き込んでいる途中の中身が require で
読み込まれてしまうでしょう。「アドバイザリロック」の意味は
http://www.google.co.jp とかで調べればわかるかと。「強制ロック
(mandatory lock)」も参照。
PHP が require するファイルのロック状態をチェックしていれば、
ロックが解かれるまで待つでしょうけどね。(そんな仕様、ありましたっけ?)
Windows では違うかもしれません。(どうなるか知りません)
> $mFp = fopen(CONFIG_PATH."common.inc", "r+");
> flock($mFp,LOCK_EX);
> set_file_buffer($mFp, 0);
> rewind($mFp);
> fputs($mFp, $lLine);
> ftruncate($mFp,ftell($mFp));
> flock($mFp, LOCK_UN);
> fclose($mFp);
--
-- Name: SATOH Fumiyasu -- Home: http://www.sfo.jp (in Japanese only)
-- Mail: fumiya @net-thrust.com, @samba.gr.jp, @namazu.org or ...
PHP-users メーリングリストの案内