flockの前に、open(OUT,">outfile.txt")がダメな理由
[上に]
[前に]
[次に]
KAN
1999/07/21(水) 23:51:51
open(OUT,">outfile.txt");
flock(OUT,2);
は、ロックする前にファイルサイズを0にしてしまうので良くな
いと、こちらに書いてありますが、なぜいけないのでしょうか。
他のプロセスはどうせ読み書きできないですし・・・。
とほほ
1999/07/22(木) 04:47:09
open(OUT, "> outfile.txt");
flock(OUT, 2);
という処理は、内部的には
(1) outfile.txtをオープンする。
(2) outfile.txtの内容を0にする。
(3) outfile.txtに書き込みロックをかける
という処理を行います。ここで、他のプロセスが、(2)と(3)の処理の間に
(a) outfile.txtをオープンする。
(b) outfile.txtの内容を読み出す。
ってことをやってしまう可能性があるので、まずいです。
KAN
1999/07/22(木) 08:36:00
[[解決]]
納得できました。
御回答、どうも有り難うございました。
[上に]
[前に]
[次に]