- 12 名前:nobodyさん mailto:a [02/06/23 11:48 ID:???]
- tohoho.wakusei.ne.jp/lng/199903/99030145.htm
とほほ 1999/03/30(火) 00:16:25 昔、UNIXのカーネルで飯を食っていました経験から判断すると・・・ (あくまでBSD系、SystemV系UNIXでの話です。NTは知らない。) symlink, mkdir, flockはいずれも、ロックを『かける』ことに関して は完璧。OSがちゃんと排他制御してくれる。 「symlinkで作られたファイルが在る状態でsymlinkを使う」って言う のを、「symlinkが衝突する」と呼ぶのであれば、この「衝突」を検出 することによってロック権を奪ったか、奪えなかったかを判断している のであり、衝突は正常動作の範囲。 symlinkとmkdirの違いは、mkdirだと、Windowsでも利用できるという ことくらいしかない。信頼度は同じ。 ただし、symlink, mkdirはロックを『はずす』時に問題があり、ロッ ク中にプロセスが異常終了したりすると、ロックファイルが残ったま まになる。 その点、flockはロックを『はずす』時も完璧で、たとえプロセスが異 常終了しても、OSがストールしても、ロックが残ることは有り得ない。 信頼性ではsymlink, mkdirよりもflockの方が高い。ただしflockは、 UNIXでもサポートしていないOSがある。 しかし、flockでも(symlink, mkdirでも)ファイルが壊れることはあ る。これは、ロック権を持ったプロセスが中途半端に書き込んでいる最 中に異常終了するなど、ロックとは無関係の原因で発生する。 もちろん、OSやperlのバグは考えていません。バグのことを考えても、 symlink, mkdir, flockのバグの発生頻度は同じようなものでしょう。 flock使えるんなら素直に使っとけ。
|

|