open(F,"<file.txt");の時もflock(F,2);すべき?
[上に]
[前に]
[次に]
KAN
1999/07/22(木) 10:39:57
極端な例ですが、巨大なサイズのfile.txtを$newへコピーする時、
open(F,"<file.txt");
open(G,">$new");
while(<F>){
print G $_;
}
のような時に、flock(F,2)はすべきでしょうか?
別プロセスによるファイルポインタの移動を阻止するために、排他ロック
をかけたほうが良いと思えるのですが、本で読んだサンプルなどでは、読
み込み時にflockを使う例を見ません。
それとも、私のファイルポインタへの理解が誤っているのでしょうか?
deepie
1999/07/27(火) 05:25:40
open(F, "file.txt");
flock(F, 1);
# 読み込むだけなら操作モードを「2」にする必要はないと思う。
# 「1」は読み込みならできる、「2」は読み書き禁止、という意味だったような気がします。
open(G, "+<$new");
flock(G, 2);
truncate(G, 0);
seek(G, 0, 0);
while (<F>) {
print G $_;
}
deepie
1999/07/27(火) 05:28:46
あ、$newっていうくらいだから新規ファイルの作成ですよね。
open(G, "+<$new");じゃだめですね、すいませんm(__ __)m
deepie
1999/07/27(火) 05:33:57
ごめんなさい、論点がずれてますね(笑)
「flock関数使うべき」でしょう。
[上に]
[前に]
[次に]