【Perl】ファイルロック(排他処理)について語ろうat PHP【Perl】ファイルロック(排他処理)について語ろう - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト809:nobodyさん 05/06/07 19:19:30 >>808 statはファイルの様々な情報を長いリストにして返す関数で、その9番目の 要素であるところのファイル更新時間だけ欲しいから[9]で取り出してると いうことだな。詳しくはperldoc -f statでもしてくれ。 810:nobodyさん 05/06/07 20:02:25 >>809 ありがとうございました。理解できました。 811:nobodyさん 05/06/07 20:15:05 >>809 前から疑問に思っていたんだが、 > 9番目 0から始まっているから、この場合10番目なのはみんな知っていると思うけど、9番目といってもいいのかな? どういう言い方が正しいのか教えて。 812:nobodyさん 05/06/07 20:59:09 9番目の要素(ninth element)、0番目の要素(zeroth element)でいいと思うけど、 9番の要素、0番の要素の方がすっきりする? 813:nobodyさん 05/06/07 22:14:04 質問です。かの有名なperlメモで以下のように書きました。 my_flockのサブルーチンの中で、戻り値を「\%lfh」のようにリファレンスで返す理由がわかりません。どなたか教えてください $lfh = my_flock() or die 'Busy!'; open(FILE,"+<$logfile"); chop($count = <FILE>); $count++; seek(FILE,0,0); print FILE "$count\n"; close(FILE); my_funlock($lfh); sub my_flock { my %lfh = (dir => './lockdir/', basename => 'lockfile', timeout => 60, trytime => 5, @_); $lfh{path} = $lfh{dir} . $lfh{basename}; for (my $i = 0; $i < $lfh{trytime}; $i++, sleep 1) { return \%lfh if (rename($lfh{path}, $lfh{current} = $lfh{path} . time)); } # ■↑戻り値がなぜ\%lfh? opendir(LOCKDIR, $lfh{dir}); my @filelist = readdir(LOCKDIR); closedir(LOCKDIR); foreach (@filelist) { if (/^$lfh{basename}(\d+)/) { return \%lfh if (time - $1 > $lfh{timeout} and rename($lfh{dir} . $_, $lfh{current} = $lfh{path} . time)); last; # ■↑戻り値がなぜ\%lfh? } } undef; } sub my_funlock { rename($_[0]->{current}, $_[0]->{path}); } 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch